Table of Contents

Exploring COVID-19 Mitigation Strategies with Data Science

How to Run this Notebook

The notebook will run as-is without modification. See the README for more details about how to adjust data download and training time.

In [1]:
# General purpose
import pandas as pd
import numpy as np
import math
import git
import os
import shutil
import glob
import random

# For plotting
from matplotlib import pyplot as plt
import seaborn as sns

# Matplotlib converters
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

# For handling time/date series
from datetime import datetime, time, timedelta, date

# For data processing
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import LabelEncoder

# For clustering analysis
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# Evaluation metrics
from sklearn.metrics import mean_squared_log_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import make_scorer

# Prediction modelling
import lightgbm
from lightgbm import LGBMRegressor
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import TimeSeriesSplit
from sklearn.pipeline import Pipeline
from sklearn.utils import shuffle

1. Introduction

1.1. Aim

The aim of this project is to explore the measures taken by governments around the world to mitigate the effects of coronavirus.

1.2. Background and Motivation

Virus COVID-19 first emerged in China in late 2019. Since then it has spread around the globe and the World Health Organisation declared it a pandemic on 12th March 2020. On the 8th March 2021, there have been over 110 million confirmed cases and over 2.5 million fatalities worldwide [10]. Most governments around the world have implemented some measures to prevent the spread of the virus and minimise the number of fatalities and there is evidence that these have saved many lives [17]. Although many of the measures taken are similar, such as social distancing, government approaches have varied in their exact type, strictness and timing. The impact of the virus in terms of the number of cases and fatalities has also varied between countries, and this leads to the question of whether some responses are more effective than others in controlling the virus. Identifying these factors could save lives in any future widespread disease outbreak and may help in planning the lifting of these measures as the crisis abates. This provides the motivation for this project.

1.3. Specific Questions Addressed

This project will address the following specific questions:

  1. How has the level of excess fatalities to date been affected by a) the speed at which different governments implemented measures and b) the extent and speed of virus testing programmes? (Excess fatality is defined as the difference between the death rate from all causes during the COVID-19 pandemic and the average death rate in the same time period over recent years.)

  2. What combinations of measures are associated with a low level of excess fatalities during the pandemic? A K-means clustering model will be developed to explore this.

  3. Can the progression of the virus in a country (in terms of numbers of cases) be predicted using data about the government responses? If so, is it possible to infer which responses are most important in influencing (and stopping) the spread of the virus? A regression model will be developed to explore this.

1.4. Note from the Author

This is a data science project conducted primarily for education and interest. The author makes no claim to be an expert in any branch of medicine or related fields. Individuals looking for advice on what they should do during the COVID-19 crisis should look to well established, reliable information sources such as the World Health Organisation, government-backed health organisations, of which there are many, for example the UK Government [1]

This project does not aim to make any judgement on how "good" or "bad" a government's response to the COVID-19 crisis has been; rather, the aim is to find the effectiveness of government measures.

The author has absolutely no wish to trivialise this extremely serious situation. This is a project seeking to further our collective understanding of the virus to help minimise fatalities and bring the crisis to an end.

1.5. Acknowledgements

This project grew out of the final project for the Udacity Data Science course [2]. Some of the techniques used in this project were learned in that course, and some of my other projects in my GitHub repository also use them. Inspiration for the project came from Kaggle's COVID-19 challenge [3]. This project relies on several data sources (see section 2.1.) and the author gratefully acknoweledges the work of The University of Oxford [4] and [5], Our World in Data [6] and [7], The Economist [8] and [9] and John Hopkins University [10] in making these available.

2. Data Understanding

2.1. Data Sources

There are three main data sources.

  • Coronavirus Government Response Tracker - University of Oxford

A daily time series providing data on confirmed cases, fatalities, and a detailed breakdown of the measures implemented by governments. See [4] and [5].

  • Coronavirus Pandemic - Our World in Data

A daily time series providing some data complimentary to the first dataset, including numers of cases and fatalities per head of population and testing data. See [6] and [7]. References to underlying data sources are given in [7].

  • Excess fatalities - The Economist

A weekly time series providing information on excess fatalities, which is the number of additional deaths recorded from any cause compared to average mortality rates in previous years. Excess fatalities provides a good way to compare the outcomes of measures between countries. It is only available for some countries. See [8] and [9]

John Hopkins University also provides an excellent data set and dashboard [10]. This is not used directly in this project but provides some of the underlying data for several of the data sources.

2.2. Data Download

The data can be gathered and updated from the GitHub repositories provided in 2.1. Data Sources.

The following code will attempt to determine if the data repositories have already been downloaded or not. If a local directory is found with the expected name defined in the variables named like *DATA_DIR below then that is assumed to be the local copy of the data and it will be used. If this directory is not found locally then the code will clone it from the remote and place it in the same directory as the notebook is running in. If you wish to clear the local copy of the data and check it out cleanly then please delete the appropriate directory manually. The directory names are defined in OXFORD_DATA_DIR, OWID_DATA_DIR and ECONOMIST_DATA_DIR.

The following code will checkout the data to the latest sha on 30th November, 2020. This is so the processing that follows is repeatable and won't be broken by future changes in the data set. This can of course be changed to a different sha or to the latest available version if you want to use more up-to-date data.

In [2]:
def setup_data(local_dir, remote_url):
    """ Set up local data repositories.

    If a local copy of the directory with the expected name is present then
    this will be used as the local copy of the data repository.
    If no local copy is found then clone it from the remote.

    param local_dir: Relative path to local directory to hold data
    param remote_url: Remote repository
    return repo: Reference to the local copy of the repository
    """

    if os.path.exists(local_dir):
        print("Local {} found, using that as data source.".format(local_dir))
        print("""If you would rather delete {0} and check it out again
cleanly, please delete {1} manually and rerun the notebook."""
              .format(local_dir, local_dir))
        print("")
        repo = git.Repo(local_dir)
    else:
        print("No local copy of {} found, cloning from the remote.".format(
            local_dir))
        print("")
        repo = git.Repo.clone_from(remote_url, local_dir)
    return repo
In [3]:
# Local data directories and remote GitHub URLs
OXFORD_DATA_DIR = 'OxCGRT-covid-policy-tracker-data'
OXFORD_REMOTE_URL = 'https://github.com/OxCGRT/covid-policy-tracker.git'
OWID_DATA_DIR = 'owid-covid-19-data'
OWID_REMOTE_URL = 'https://github.com/owid/covid-19-data'
ECONOMIST_DATA_DIR = 'economist-covid-19-excess-deaths-tracker'
ECONOMIST_REMOTE_URL = \
    'https://github.com/TheEconomist/covid-19-excess-deaths-tracker'
# Git SHAs for end of November 2020. This is to give a stable data source.
OXFORD_SHA_END_NOV_2020 = 'd3df75e6d'
OWID_SHA_END_NOV_2020 = 'fc58fad2'
ECONOMIST_SHA_END_NOV_2020 = 'eaf2d3e'
# Set up the repos
oxford_repo = setup_data(OXFORD_DATA_DIR, OXFORD_REMOTE_URL)
owid_repo = setup_data(OWID_DATA_DIR, OWID_REMOTE_URL)
economist_repo = setup_data(ECONOMIST_DATA_DIR, ECONOMIST_REMOTE_URL)
# Set up the data frames
oxford_repo.git.checkout(OXFORD_SHA_END_NOV_2020)
oxford_df = pd.read_csv(os.path.join(OXFORD_DATA_DIR,
                                     'data/OxCGRT_latest.csv'),
                        dtype={'RegionName': str, 'RegionCode': str})
owid_repo.git.checkout(OWID_SHA_END_NOV_2020)
owid_df = pd.read_csv(os.path.join(OWID_DATA_DIR,
                                   'public/data/owid-covid-data.csv'))
economist_repo.git.checkout(ECONOMIST_SHA_END_NOV_2020)
economist_excess_df = pd.read_csv(os.path.join(
    ECONOMIST_DATA_DIR,
    'output-data/excess-deaths/all_weekly_excess_deaths.csv'))
economist_monthly_excess_df = pd.read_csv(os.path.join(
    ECONOMIST_DATA_DIR,
    'output-data/excess-deaths/all_monthly_excess_deaths.csv'))
Local OxCGRT-covid-policy-tracker-data found, using that as data source.
If you would rather delete OxCGRT-covid-policy-tracker-data and check it out again
cleanly, please delete OxCGRT-covid-policy-tracker-data manually and rerun the notebook.

Local owid-covid-19-data found, using that as data source.
If you would rather delete owid-covid-19-data and check it out again
cleanly, please delete owid-covid-19-data manually and rerun the notebook.

Local economist-covid-19-excess-deaths-tracker found, using that as data source.
If you would rather delete economist-covid-19-excess-deaths-tracker and check it out again
cleanly, please delete economist-covid-19-excess-deaths-tracker manually and rerun the notebook.

2.3. Initial Assessment of the Data

2.3.1. Coronavirus Government Response Tracker Data (University of Oxford)

In [4]:
oxford_df.head()
Out[4]:
CountryName CountryCode RegionName RegionCode Jurisdiction Date C1_School closing C1_Flag C2_Workplace closing C2_Flag ... StringencyIndex StringencyIndexForDisplay StringencyLegacyIndex StringencyLegacyIndexForDisplay GovernmentResponseIndex GovernmentResponseIndexForDisplay ContainmentHealthIndex ContainmentHealthIndexForDisplay EconomicSupportIndex EconomicSupportIndexForDisplay
0 Aruba ABW NaN NaN NAT_TOTAL 20200101 0.0 NaN 0.0 NaN ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 Aruba ABW NaN NaN NAT_TOTAL 20200102 0.0 NaN 0.0 NaN ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 Aruba ABW NaN NaN NAT_TOTAL 20200103 0.0 NaN 0.0 NaN ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 Aruba ABW NaN NaN NAT_TOTAL 20200104 0.0 NaN 0.0 NaN ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 Aruba ABW NaN NaN NAT_TOTAL 20200105 0.0 NaN 0.0 NaN ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

5 rows × 47 columns

In [5]:
oxford_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 88775 entries, 0 to 88774
Data columns (total 47 columns):
 #   Column                                 Non-Null Count  Dtype  
---  ------                                 --------------  -----  
 0   CountryName                            88775 non-null  object 
 1   CountryCode                            88775 non-null  object 
 2   RegionName                             27805 non-null  object 
 3   RegionCode                             27805 non-null  object 
 4   Jurisdiction                           88775 non-null  object 
 5   Date                                   88775 non-null  int64  
 6   C1_School closing                      84910 non-null  float64
 7   C1_Flag                                62222 non-null  float64
 8   C2_Workplace closing                   84443 non-null  float64
 9   C2_Flag                                57664 non-null  float64
 10  C3_Cancel public events                84472 non-null  float64
 11  C3_Flag                                61463 non-null  float64
 12  C4_Restrictions on gatherings          84454 non-null  float64
 13  C4_Flag                                57742 non-null  float64
 14  C5_Close public transport              84468 non-null  float64
 15  C5_Flag                                36020 non-null  float64
 16  C6_Stay at home requirements           84125 non-null  float64
 17  C6_Flag                                50848 non-null  float64
 18  C7_Restrictions on internal movement   84947 non-null  float64
 19  C7_Flag                                49124 non-null  float64
 20  C8_International travel controls       84849 non-null  float64
 21  E1_Income support                      77088 non-null  float64
 22  E1_Flag                                43147 non-null  float64
 23  E2_Debt/contract relief                76382 non-null  float64
 24  E3_Fiscal measures                     64929 non-null  float64
 25  E4_International support               65741 non-null  float64
 26  H1_Public information campaigns        84488 non-null  float64
 27  H1_Flag                                73085 non-null  float64
 28  H2_Testing policy                      84660 non-null  float64
 29  H3_Contact tracing                     84350 non-null  float64
 30  H4_Emergency investment in healthcare  64764 non-null  float64
 31  H5_Investment in vaccines              65072 non-null  float64
 32  H6_Facial Coverings                    84118 non-null  float64
 33  H6_Flag                                52609 non-null  float64
 34  M1_Wildcard                            0 non-null      float64
 35  ConfirmedCases                         74776 non-null  float64
 36  ConfirmedDeaths                        74642 non-null  float64
 37  StringencyIndex                        84099 non-null  float64
 38  StringencyIndexForDisplay              84869 non-null  float64
 39  StringencyLegacyIndex                  84113 non-null  float64
 40  StringencyLegacyIndexForDisplay        84876 non-null  float64
 41  GovernmentResponseIndex                76341 non-null  float64
 42  GovernmentResponseIndexForDisplay      77116 non-null  float64
 43  ContainmentHealthIndex                 84051 non-null  float64
 44  ContainmentHealthIndexForDisplay       84826 non-null  float64
 45  EconomicSupportIndex                   76343 non-null  float64
 46  EconomicSupportIndexForDisplay         77118 non-null  float64
dtypes: float64(41), int64(1), object(5)
memory usage: 31.8+ MB
In [6]:
oxford_df.isnull().sum()
Out[6]:
CountryName                                  0
CountryCode                                  0
RegionName                               60970
RegionCode                               60970
Jurisdiction                                 0
Date                                         0
C1_School closing                         3865
C1_Flag                                  26553
C2_Workplace closing                      4332
C2_Flag                                  31111
C3_Cancel public events                   4303
C3_Flag                                  27312
C4_Restrictions on gatherings             4321
C4_Flag                                  31033
C5_Close public transport                 4307
C5_Flag                                  52755
C6_Stay at home requirements              4650
C6_Flag                                  37927
C7_Restrictions on internal movement      3828
C7_Flag                                  39651
C8_International travel controls          3926
E1_Income support                        11687
E1_Flag                                  45628
E2_Debt/contract relief                  12393
E3_Fiscal measures                       23846
E4_International support                 23034
H1_Public information campaigns           4287
H1_Flag                                  15690
H2_Testing policy                         4115
H3_Contact tracing                        4425
H4_Emergency investment in healthcare    24011
H5_Investment in vaccines                23703
H6_Facial Coverings                       4657
H6_Flag                                  36166
M1_Wildcard                              88775
ConfirmedCases                           13999
ConfirmedDeaths                          14133
StringencyIndex                           4676
StringencyIndexForDisplay                 3906
StringencyLegacyIndex                     4662
StringencyLegacyIndexForDisplay           3899
GovernmentResponseIndex                  12434
GovernmentResponseIndexForDisplay        11659
ContainmentHealthIndex                    4724
ContainmentHealthIndexForDisplay          3949
EconomicSupportIndex                     12432
EconomicSupportIndexForDisplay           11657
dtype: int64

The oxford_df includes detailed information about the measures taken by governments along with case and fatality numbers from the European Centre for Disease Prevention and Control [13]. The data is a daily time series starting on 1st January 2020, updated daily and is organised by country. For some countries, it is additionally subdivided into regions (e.g. US states). There are many null values to deal with in the data.

2.3.2. Coronavirus Pandemic Data (Our World in Data)

In [7]:
owid_df.head()
Out[7]:
iso_code continent location date total_cases new_cases new_cases_smoothed total_deaths new_deaths new_deaths_smoothed ... gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
0 AFG Asia Afghanistan 2020-01-23 NaN 0.0 NaN NaN 0.0 NaN ... 1803.987 NaN 597.029 9.59 NaN NaN 37.746 0.5 64.83 0.498
1 AFG Asia Afghanistan 2020-01-24 NaN 0.0 NaN NaN 0.0 NaN ... 1803.987 NaN 597.029 9.59 NaN NaN 37.746 0.5 64.83 0.498
2 AFG Asia Afghanistan 2020-01-25 NaN 0.0 NaN NaN 0.0 NaN ... 1803.987 NaN 597.029 9.59 NaN NaN 37.746 0.5 64.83 0.498
3 AFG Asia Afghanistan 2020-01-26 NaN 0.0 NaN NaN 0.0 NaN ... 1803.987 NaN 597.029 9.59 NaN NaN 37.746 0.5 64.83 0.498
4 AFG Asia Afghanistan 2020-01-27 NaN 0.0 NaN NaN 0.0 NaN ... 1803.987 NaN 597.029 9.59 NaN NaN 37.746 0.5 64.83 0.498

5 rows × 50 columns

In [8]:
owid_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 59720 entries, 0 to 59719
Data columns (total 50 columns):
 #   Column                              Non-Null Count  Dtype  
---  ------                              --------------  -----  
 0   iso_code                            59408 non-null  object 
 1   continent                           59095 non-null  object 
 2   location                            59720 non-null  object 
 3   date                                59720 non-null  object 
 4   total_cases                         50977 non-null  float64
 5   new_cases                           59593 non-null  float64
 6   new_cases_smoothed                  58637 non-null  float64
 7   total_deaths                        43180 non-null  float64
 8   new_deaths                          59593 non-null  float64
 9   new_deaths_smoothed                 58637 non-null  float64
 10  total_cases_per_million             50680 non-null  float64
 11  new_cases_per_million               59281 non-null  float64
 12  new_cases_smoothed_per_million      58330 non-null  float64
 13  total_deaths_per_million            42896 non-null  float64
 14  new_deaths_per_million              59281 non-null  float64
 15  new_deaths_smoothed_per_million     58330 non-null  float64
 16  reproduction_rate                   39997 non-null  float64
 17  icu_patients                        4747 non-null   float64
 18  icu_patients_per_million            4747 non-null   float64
 19  hosp_patients                       5421 non-null   float64
 20  hosp_patients_per_million           5421 non-null   float64
 21  weekly_icu_admissions               444 non-null    float64
 22  weekly_icu_admissions_per_million   444 non-null    float64
 23  weekly_hosp_admissions              731 non-null    float64
 24  weekly_hosp_admissions_per_million  731 non-null    float64
 25  total_tests                         23512 non-null  float64
 26  new_tests                           23376 non-null  float64
 27  total_tests_per_thousand            23512 non-null  float64
 28  new_tests_per_thousand              23376 non-null  float64
 29  new_tests_smoothed                  26003 non-null  float64
 30  new_tests_smoothed_per_thousand     26003 non-null  float64
 31  tests_per_case                      24084 non-null  float64
 32  positive_rate                       24486 non-null  float64
 33  tests_units                         26983 non-null  object 
 34  stringency_index                    52053 non-null  float64
 35  population                          59408 non-null  float64
 36  population_density                  57841 non-null  float64
 37  median_age                          56600 non-null  float64
 38  aged_65_older                       55657 non-null  float64
 39  aged_70_older                       56288 non-null  float64
 40  gdp_per_capita                      56593 non-null  float64
 41  extreme_poverty                     38736 non-null  float64
 42  cardiovasc_death_rate               57154 non-null  float64
 43  diabetes_prevalence                 57841 non-null  float64
 44  female_smokers                      44355 non-null  float64
 45  male_smokers                        43731 non-null  float64
 46  handwashing_facilities              29683 non-null  float64
 47  hospital_beds_per_thousand          52154 non-null  float64
 48  life_expectancy                     59096 non-null  float64
 49  human_development_index             56904 non-null  float64
dtypes: float64(45), object(5)
memory usage: 22.8+ MB
In [9]:
owid_df.isnull().sum()
Out[9]:
iso_code                                312
continent                               625
location                                  0
date                                      0
total_cases                            8743
new_cases                               127
new_cases_smoothed                     1083
total_deaths                          16540
new_deaths                              127
new_deaths_smoothed                    1083
total_cases_per_million                9040
new_cases_per_million                   439
new_cases_smoothed_per_million         1390
total_deaths_per_million              16824
new_deaths_per_million                  439
new_deaths_smoothed_per_million        1390
reproduction_rate                     19723
icu_patients                          54973
icu_patients_per_million              54973
hosp_patients                         54299
hosp_patients_per_million             54299
weekly_icu_admissions                 59276
weekly_icu_admissions_per_million     59276
weekly_hosp_admissions                58989
weekly_hosp_admissions_per_million    58989
total_tests                           36208
new_tests                             36344
total_tests_per_thousand              36208
new_tests_per_thousand                36344
new_tests_smoothed                    33717
new_tests_smoothed_per_thousand       33717
tests_per_case                        35636
positive_rate                         35234
tests_units                           32737
stringency_index                       7667
population                              312
population_density                     1879
median_age                             3120
aged_65_older                          4063
aged_70_older                          3432
gdp_per_capita                         3127
extreme_poverty                       20984
cardiovasc_death_rate                  2566
diabetes_prevalence                    1879
female_smokers                        15365
male_smokers                          15989
handwashing_facilities                30037
hospital_beds_per_thousand             7566
life_expectancy                         624
human_development_index                2816
dtype: int64

The owid_df includes several data fields complimentary to the oxford_df including case and fatality numbers per head of population and testing data. The data is a daily time series starting on 31st December 2019, it is updated daily and is organised by country. There are many null values to deal with in the data.

Note that total_cases and total_deaths in this data frame should be equal to ConfirmedCases and ConfrmedFatalities in oxford_df (they use the same source information). However, total_cases and total_deaths have a lot less null values than ConfirmedCases and ConfrmedFatalities. See also section 3.2.1.2. for more about cross checking the consistency of these fields and choosing which to use.

2.3.3. Excess Fatalities Data (The Economist)

In [10]:
economist_excess_df.head()
Out[10]:
country region region_code start_date end_date year week population total_deaths covid_deaths expected_deaths excess_deaths non_covid_deaths covid_deaths_per_100k excess_deaths_per_100k excess_deaths_pct_change
0 Austria Austria 0 2019-12-30 2020-01-05 2020 1 8902600 1611.0 0.0 1740.715078 -129.715078 1611.0 0.0 -1.457047 -0.074518
1 Austria Austria 0 2020-01-06 2020-01-12 2020 2 8902600 1702.0 0.0 1781.987805 -79.987805 1702.0 0.0 -0.898477 -0.044887
2 Austria Austria 0 2020-01-13 2020-01-19 2020 3 8902600 1797.0 0.0 1744.351441 52.648559 1797.0 0.0 0.591384 0.030182
3 Austria Austria 0 2020-01-20 2020-01-26 2020 4 8902600 1779.0 0.0 1716.896896 62.103104 1779.0 0.0 0.697584 0.036172
4 Austria Austria 0 2020-01-27 2020-02-02 2020 5 8902600 1947.0 0.0 1779.351441 167.648559 1947.0 0.0 1.883142 0.094219
In [11]:
economist_excess_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6547 entries, 0 to 6546
Data columns (total 16 columns):
 #   Column                    Non-Null Count  Dtype  
---  ------                    --------------  -----  
 0   country                   6547 non-null   object 
 1   region                    6547 non-null   object 
 2   region_code               6547 non-null   object 
 3   start_date                6547 non-null   object 
 4   end_date                  6547 non-null   object 
 5   year                      6547 non-null   int64  
 6   week                      6547 non-null   int64  
 7   population                6547 non-null   int64  
 8   total_deaths              6547 non-null   float64
 9   covid_deaths              6547 non-null   float64
 10  expected_deaths           6547 non-null   float64
 11  excess_deaths             6547 non-null   float64
 12  non_covid_deaths          6547 non-null   float64
 13  covid_deaths_per_100k     6547 non-null   float64
 14  excess_deaths_per_100k    6547 non-null   float64
 15  excess_deaths_pct_change  6547 non-null   float64
dtypes: float64(8), int64(3), object(5)
memory usage: 818.5+ KB
In [12]:
economist_excess_df.isnull().sum()
Out[12]:
country                     0
region                      0
region_code                 0
start_date                  0
end_date                    0
year                        0
week                        0
population                  0
total_deaths                0
covid_deaths                0
expected_deaths             0
excess_deaths               0
non_covid_deaths            0
covid_deaths_per_100k       0
excess_deaths_per_100k      0
excess_deaths_pct_change    0
dtype: int64

The most important data from the economist_excess_df is excess deaths. This is given for a limited number of places organised by country and region. It is a weekly time series. There are no null values to deal with.

In [13]:
economist_monthly_excess_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 249 entries, 0 to 248
Data columns (total 23 columns):
 #   Column                             Non-Null Count  Dtype  
---  ------                             --------------  -----  
 0   country                            249 non-null    object 
 1   region                             249 non-null    object 
 2   region_code                        249 non-null    object 
 3   start_date                         249 non-null    object 
 4   end_date                           249 non-null    object 
 5   year                               249 non-null    int64  
 6   month                              249 non-null    int64  
 7   population                         249 non-null    int64  
 8   total_deaths                       249 non-null    int64  
 9   covid_deaths                       249 non-null    int64  
 10  expected_deaths                    249 non-null    float64
 11  excess_deaths                      249 non-null    float64
 12  non_covid_deaths                   249 non-null    int64  
 13  covid_deaths_per_100k              249 non-null    float64
 14  excess_deaths_per_100k             249 non-null    float64
 15  excess_deaths_pct_change           249 non-null    float64
 16  total_deaths_per_7_days            249 non-null    float64
 17  covid_deaths_per_7_days            249 non-null    float64
 18  expected_deaths_per_7_days         249 non-null    float64
 19  excess_deaths_per_7_days           249 non-null    float64
 20  non_covid_deaths_per_7_days        249 non-null    float64
 21  covid_deaths_per_100k_per_7_days   249 non-null    float64
 22  excess_deaths_per_100k_per_7_days  249 non-null    float64
dtypes: float64(12), int64(6), object(5)
memory usage: 44.9+ KB
In [14]:
economist_monthly_excess_df.isnull().sum()
Out[14]:
country                              0
region                               0
region_code                          0
start_date                           0
end_date                             0
year                                 0
month                                0
population                           0
total_deaths                         0
covid_deaths                         0
expected_deaths                      0
excess_deaths                        0
non_covid_deaths                     0
covid_deaths_per_100k                0
excess_deaths_per_100k               0
excess_deaths_pct_change             0
total_deaths_per_7_days              0
covid_deaths_per_7_days              0
expected_deaths_per_7_days           0
excess_deaths_per_7_days             0
non_covid_deaths_per_7_days          0
covid_deaths_per_100k_per_7_days     0
excess_deaths_per_100k_per_7_days    0
dtype: int64

The economist_monthly_excess_df is a monthly time series with the same feature set as economist_excess_df. Again, it has no null values.

3. Data Preparation

3.1. Data Preparation and Cleaning

3.1.1. Daily Time Series (University of Oxford and Our World in Data)

3.1.1.1. Coronavirus Government Response Tracker Data - University of Oxford

In this project the data will be examined on a country level so we can drop rows corresponding to regional (rather than country-wide) data. The features RegionName, RegionCode and Jurisdiction are not needed and will be dropped.

M1_Wildcard is also dropped here. This is because it is a free text notes field which can't be used easily in any automated processing.

In [15]:
# Drop rows containing regional (rather than country wide) data
oxford_df.drop(oxford_df[oxford_df['RegionName'].notnull()].index,
               inplace=True)
# Drop features that are not needed
oxford_df.drop(columns=['RegionName', 'RegionCode',
                        'Jurisdiction', 'M1_Wildcard'], inplace=True)

All of the other data fields from this source will be retained for now.

There are many null values in oxford_df, and it appears that many (perhaps all) of these occur in the early stages of the pandemic when the levels of different measures were simply not recorded. It is reasonable to set these values to 0 (indicating no measures in place). If a null value occurs after a non-null value has been recorded, then assume the measurement is unchanged since the last non-null, i.e. replace the null value with the previous non-null value. This cleaning step will be done in section 3.1.1.3. in common with owid_df.

3.1.1.2. Coronavirus Pandemic Data - Our World in Data

This project will use a subset of the data in owid_df, and some fields are duplicated by oxford_df, so drop some fields now.

In [16]:
owid_df.drop(columns=['continent', 'stringency_index'], inplace=True)

For the remaining values:

  • If a null value occurs after a non-null value has been recorded, then assume the measurement is unchanged since the last non-null, i.e. replace the null value with the previous non-null value. (Same process as in oxford_df.)

  • However, for the data in owid_df, it is not always safe to assume that all null values at the start of the pandemic are 0. For example, the number of tests carried out before the pandemic started will be 0, but the number of smokers, or the diabetes prevalence, cannot be assumed to start at 0.

To handle this, create two lists, each one corresponding to the different handling of the initial null values.

In [17]:
# Features that can be safely assumed to be zero at the start of the series
owid_features_set_zero_at_start = ['total_cases',
                                   'new_cases',
                                   'total_deaths',
                                   'new_deaths',
                                   'total_cases_per_million',
                                   'new_cases_per_million',
                                   'total_deaths_per_million',
                                   'new_deaths_per_million',
                                   'total_tests',
                                   'new_tests',
                                   'total_tests_per_thousand',
                                   'new_tests_per_thousand',
                                   'new_tests_smoothed',
                                   'new_tests_smoothed_per_thousand',
                                   'hosp_patients',
                                   'hosp_patients_per_million',
                                   'icu_patients',
                                   'icu_patients_per_million',
                                   'positive_rate',
                                   'reproduction_rate',
                                   'tests_per_case',
                                   'weekly_hosp_admissions',
                                   'weekly_hosp_admissions_per_million',
                                   'weekly_icu_admissions',
                                   'weekly_icu_admissions_per_million',
                                   'new_cases_smoothed',
                                   'new_cases_smoothed_per_million',
                                   'new_deaths_smoothed',
                                   'new_deaths_smoothed_per_million']
In [18]:
# Features that can't be assumed to be zero at the start of the series
owid_features_not_set_zero_at_start = np.setdiff1d(
    owid_df.columns, owid_features_set_zero_at_start)
In [19]:
owid_features_not_set_zero_at_start
Out[19]:
array(['aged_65_older', 'aged_70_older', 'cardiovasc_death_rate', 'date',
       'diabetes_prevalence', 'extreme_poverty', 'female_smokers',
       'gdp_per_capita', 'handwashing_facilities',
       'hospital_beds_per_thousand', 'human_development_index',
       'iso_code', 'life_expectancy', 'location', 'male_smokers',
       'median_age', 'population', 'population_density', 'tests_units'],
      dtype=object)

Remove location from the list, because this will be renamed later, and there are no null values for location in the data set to be fixed anyway.

In [20]:
owid_features_not_set_zero_at_start = (
    owid_features_not_set_zero_at_start.tolist())
owid_features_not_set_zero_at_start.remove('location')
owid_features_not_set_zero_at_start
Out[20]:
['aged_65_older',
 'aged_70_older',
 'cardiovasc_death_rate',
 'date',
 'diabetes_prevalence',
 'extreme_poverty',
 'female_smokers',
 'gdp_per_capita',
 'handwashing_facilities',
 'hospital_beds_per_thousand',
 'human_development_index',
 'iso_code',
 'life_expectancy',
 'male_smokers',
 'median_age',
 'population',
 'population_density',
 'tests_units']
3.1.1.3. Fix Null Values in Daily Time series

Create a common function to fix null values in oxford_df and owid_df.

In [21]:
def fix_nulls(df, feature, assume_zeros_at_start):
    """ Fix null values for a feature in a dataframe.

    If assume_zeros_at_start is True then null values between the first
    date in the dataframe and the first non-null value should be set to 0.
    If False, they should remain as null values.

    param df: dataframe
    param feature: feature in the dataframe containing nulls
    param assume_zeros_at_start: whether to replace nulls at the start with 0
    """
    country_groups = df.groupby(['country'])
    feature_list = []
    for c in country_groups.groups.keys():
        feature_list = country_groups.get_group(c)[feature].tolist()
        corrected = False
        for i in range(len(feature_list)):
            # Fill in null values
            if (pd.isnull(feature_list[i])):
                # Set first data point in series to 0
                if (i == 0) and (assume_zeros_at_start is True):
                    feature_list[i] = 0
                    corrected = True
                # Subsequent null values are set equal to previous value.
                elif i > 0:
                    feature_list[i] = feature_list[i-1]
                corrected = True
        if corrected is True:
            print("Filling null values for location {0}".format(c))
            df.loc[df['country'] == c, feature] = feature_list

Before using this to fix null values in oxford_df and owid_df, rename the CountryName field in oxford_df and location in owid_df to a common name country:

In [22]:
owid_df.rename(columns={'location': 'country'}, inplace=True)
oxford_df.rename(columns={'CountryName': 'country'}, inplace=True)
In [23]:
oxford_df.isnull().sum().sum()
Out[23]:
329475
In [24]:
for feature in oxford_df.columns:
    fix_nulls(oxford_df, feature, True)
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Jamaica
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bermuda
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Jamaica
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Slovak Republic
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United States Virgin Islands
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Aruba
Filling null values for location Bahamas
Filling null values for location Bangladesh
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Comoros
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Georgia
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Jamaica
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Libya
Filling null values for location Monaco
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Niger
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Russia
Filling null values for location Seychelles
Filling null values for location Slovenia
Filling null values for location South Sudan
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Timor-Leste
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location United Kingdom
Filling null values for location United States Virgin Islands
Filling null values for location Vanuatu
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Aruba
Filling null values for location Bahamas
Filling null values for location Bangladesh
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Comoros
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Georgia
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Jamaica
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Libya
Filling null values for location Monaco
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Niger
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Russia
Filling null values for location Seychelles
Filling null values for location Slovenia
Filling null values for location South Sudan
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location United Kingdom
Filling null values for location United States Virgin Islands
Filling null values for location Vanuatu
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Bahamas
Filling null values for location Bangladesh
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Comoros
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Georgia
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Jamaica
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Libya
Filling null values for location Mauritania
Filling null values for location Monaco
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Russia
Filling null values for location Seychelles
Filling null values for location Slovenia
Filling null values for location South Sudan
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Timor-Leste
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States Virgin Islands
Filling null values for location Vanuatu
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Bahamas
Filling null values for location Bangladesh
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Comoros
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Georgia
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Jamaica
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Libya
Filling null values for location Mauritania
Filling null values for location Monaco
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Russia
Filling null values for location Seychelles
Filling null values for location Slovenia
Filling null values for location South Sudan
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Timor-Leste
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States Virgin Islands
Filling null values for location Vanuatu
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Eswatini
Filling null values for location Ethiopia
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kosovo
Filling null values for location Kyrgyz Republic
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macao
Filling null values for location Madagascar
Filling null values for location Malaysia
Filling null values for location Mali
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Puerto Rico
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor-Leste
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location United States Virgin Islands
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Argentina
Filling null values for location Aruba
Filling null values for location Bahamas
Filling null values for location Bangladesh
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Comoros
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Faeroe Islands
Filling null values for location Finland
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Greenland
Filling null values for location Guam
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location Israel
Filling null values for location Jamaica
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Libya
Filling null values for location Monaco
Filling null values for location Myanmar
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location Niger
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Puerto Rico
Filling null values for location Russia
Filling null values for location Seychelles
Filling null values for location Slovenia
Filling null values for location South Sudan
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Timor-Leste
Filling null values for location Turkey
Filling null values for location Turkmenistan
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States Virgin Islands
Filling null values for location Vanuatu
Filling null values for location Vietnam
Filling null values for location Yemen
In [25]:
oxford_df.isnull().sum().sum()
Out[25]:
0

Now fix the null values we can in owid_df:

In [26]:
owid_df.isnull().sum().sum()
Out[26]:
962238
In [27]:
for feature in owid_features_set_zero_at_start:
    fix_nulls(owid_df, feature, True)
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Bahrain
Filling null values for location China
Filling null values for location Hong Kong
Filling null values for location Japan
Filling null values for location Mexico
Filling null values for location New Zealand
Filling null values for location Rwanda
Filling null values for location South Korea
Filling null values for location Taiwan
Filling null values for location Thailand
Filling null values for location United States
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Bahrain
Filling null values for location China
Filling null values for location Hong Kong
Filling null values for location Japan
Filling null values for location Mexico
Filling null values for location New Zealand
Filling null values for location Rwanda
Filling null values for location South Korea
Filling null values for location Taiwan
Filling null values for location Thailand
Filling null values for location United States
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Bahrain
Filling null values for location China
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Japan
Filling null values for location Mexico
Filling null values for location New Zealand
Filling null values for location Rwanda
Filling null values for location South Korea
Filling null values for location Taiwan
Filling null values for location Thailand
Filling null values for location United States
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Bahrain
Filling null values for location China
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Japan
Filling null values for location Mexico
Filling null values for location New Zealand
Filling null values for location Rwanda
Filling null values for location South Korea
Filling null values for location Taiwan
Filling null values for location Thailand
Filling null values for location United States
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
In [28]:
owid_df.isnull().sum().sum()
Out[28]:
146808
In [29]:
for feature in owid_features_not_set_zero_at_start:
    fix_nulls(owid_df, feature, False)
Filling null values for location Andorra
Filling null values for location Dominica
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Liechtenstein
Filling null values for location Marshall Islands
Filling null values for location Monaco
Filling null values for location Saint Kitts and Nevis
Filling null values for location San Marino
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location Andorra
Filling null values for location Dominica
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Liechtenstein
Filling null values for location Marshall Islands
Filling null values for location Monaco
Filling null values for location Saint Kitts and Nevis
Filling null values for location San Marino
Filling null values for location Serbia
Filling null values for location Vatican
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Liechtenstein
Filling null values for location Monaco
Filling null values for location Saint Kitts and Nevis
Filling null values for location San Marino
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location Afghanistan
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belize
Filling null values for location Botswana
Filling null values for location Brunei
Filling null values for location Cambodia
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Dominica
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Finland
Filling null values for location France
Filling null values for location Germany
Filling null values for location Grenada
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Kuwait
Filling null values for location Lebanon
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Marshall Islands
Filling null values for location Monaco
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nigeria
Filling null values for location Oman
Filling null values for location Papua New Guinea
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Qatar
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Serbia
Filling null values for location Singapore
Filling null values for location Slovenia
Filling null values for location Somalia
Filling null values for location South Sudan
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Trinidad and Tobago
Filling null values for location United Arab Emirates
Filling null values for location Uzbekistan
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Belize
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Burundi
Filling null values for location Cameroon
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Dominica
Filling null values for location Equatorial Guinea
Filling null values for location Gabon
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Iraq
Filling null values for location Jordan
Filling null values for location Kosovo
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Monaco
Filling null values for location Nicaragua
Filling null values for location Palestine
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Sudan
Filling null values for location Sudan
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Trinidad and Tobago
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Andorra
Filling null values for location Cuba
Filling null values for location International
Filling null values for location Liechtenstein
Filling null values for location Monaco
Filling null values for location Somalia
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location Albania
Filling null values for location Andorra
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Chile
Filling null values for location China
Filling null values for location Croatia
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Hong Kong
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location International
Filling null values for location Iran
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Malaysia
Filling null values for location Malta
Filling null values for location Mauritius
Filling null values for location Monaco
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Norway
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Peru
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Saudi Arabia
Filling null values for location Seychelles
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location South Korea
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Taiwan
Filling null values for location Turkey
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Chad
Filling null values for location Congo
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Guinea-Bissau
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Lesotho
Filling null values for location Maldives
Filling null values for location Mauritania
Filling null values for location Namibia
Filling null values for location Nigeria
Filling null values for location Palestine
Filling null values for location Papua New Guinea
Filling null values for location Rwanda
Filling null values for location Senegal
Filling null values for location Sierra Leone
Filling null values for location South Sudan
Filling null values for location Taiwan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Monaco
Filling null values for location San Marino
Filling null values for location Somalia
Filling null values for location Taiwan
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location International
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Afghanistan
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Belize
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Burundi
Filling null values for location Cameroon
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Cote d'Ivoire
Filling null values for location Democratic Republic of Congo
Filling null values for location Dominica
Filling null values for location Equatorial Guinea
Filling null values for location Gabon
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Honduras
Filling null values for location Hong Kong
Filling null values for location International
Filling null values for location Iraq
Filling null values for location Jordan
Filling null values for location Kosovo
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Monaco
Filling null values for location Nicaragua
Filling null values for location Palestine
Filling null values for location Peru
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Sudan
Filling null values for location Sudan
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Trinidad and Tobago
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Western Sahara
Filling null values for location Andorra
Filling null values for location Dominica
Filling null values for location International
Filling null values for location Kosovo
Filling null values for location Liechtenstein
Filling null values for location Marshall Islands
Filling null values for location Monaco
Filling null values for location Saint Kitts and Nevis
Filling null values for location San Marino
Filling null values for location Vatican
Filling null values for location International
Filling null values for location International
Filling null values for location South Sudan
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Vatican
Filling null values for location Western Sahara
Filling null values for location Afghanistan
Filling null values for location Albania
Filling null values for location Algeria
Filling null values for location Andorra
Filling null values for location Angola
Filling null values for location Antigua and Barbuda
Filling null values for location Argentina
Filling null values for location Armenia
Filling null values for location Australia
Filling null values for location Austria
Filling null values for location Azerbaijan
Filling null values for location Bahamas
Filling null values for location Bahrain
Filling null values for location Bangladesh
Filling null values for location Barbados
Filling null values for location Belarus
Filling null values for location Belgium
Filling null values for location Belize
Filling null values for location Benin
Filling null values for location Bhutan
Filling null values for location Bolivia
Filling null values for location Bosnia and Herzegovina
Filling null values for location Botswana
Filling null values for location Brazil
Filling null values for location Brunei
Filling null values for location Bulgaria
Filling null values for location Burkina Faso
Filling null values for location Burundi
Filling null values for location Cambodia
Filling null values for location Cameroon
Filling null values for location Canada
Filling null values for location Cape Verde
Filling null values for location Central African Republic
Filling null values for location Chad
Filling null values for location Chile
Filling null values for location China
Filling null values for location Colombia
Filling null values for location Comoros
Filling null values for location Congo
Filling null values for location Costa Rica
Filling null values for location Cote d'Ivoire
Filling null values for location Croatia
Filling null values for location Cuba
Filling null values for location Cyprus
Filling null values for location Czech Republic
Filling null values for location Democratic Republic of Congo
Filling null values for location Denmark
Filling null values for location Djibouti
Filling null values for location Dominica
Filling null values for location Dominican Republic
Filling null values for location Ecuador
Filling null values for location Egypt
Filling null values for location El Salvador
Filling null values for location Equatorial Guinea
Filling null values for location Eritrea
Filling null values for location Estonia
Filling null values for location Ethiopia
Filling null values for location Fiji
Filling null values for location Finland
Filling null values for location France
Filling null values for location Gabon
Filling null values for location Gambia
Filling null values for location Georgia
Filling null values for location Germany
Filling null values for location Ghana
Filling null values for location Greece
Filling null values for location Grenada
Filling null values for location Guatemala
Filling null values for location Guinea
Filling null values for location Guinea-Bissau
Filling null values for location Guyana
Filling null values for location Haiti
Filling null values for location Honduras
Filling null values for location Hungary
Filling null values for location Iceland
Filling null values for location India
Filling null values for location Indonesia
Filling null values for location International
Filling null values for location Iran
Filling null values for location Iraq
Filling null values for location Ireland
Filling null values for location Israel
Filling null values for location Italy
Filling null values for location Jamaica
Filling null values for location Japan
Filling null values for location Jordan
Filling null values for location Kazakhstan
Filling null values for location Kenya
Filling null values for location Kosovo
Filling null values for location Kuwait
Filling null values for location Kyrgyzstan
Filling null values for location Laos
Filling null values for location Latvia
Filling null values for location Lebanon
Filling null values for location Lesotho
Filling null values for location Liberia
Filling null values for location Libya
Filling null values for location Liechtenstein
Filling null values for location Lithuania
Filling null values for location Luxembourg
Filling null values for location Macedonia
Filling null values for location Madagascar
Filling null values for location Malawi
Filling null values for location Malaysia
Filling null values for location Maldives
Filling null values for location Mali
Filling null values for location Malta
Filling null values for location Marshall Islands
Filling null values for location Mauritania
Filling null values for location Mauritius
Filling null values for location Mexico
Filling null values for location Moldova
Filling null values for location Monaco
Filling null values for location Mongolia
Filling null values for location Montenegro
Filling null values for location Morocco
Filling null values for location Mozambique
Filling null values for location Myanmar
Filling null values for location Namibia
Filling null values for location Nepal
Filling null values for location Netherlands
Filling null values for location New Zealand
Filling null values for location Nicaragua
Filling null values for location Niger
Filling null values for location Nigeria
Filling null values for location Norway
Filling null values for location Oman
Filling null values for location Pakistan
Filling null values for location Palestine
Filling null values for location Panama
Filling null values for location Papua New Guinea
Filling null values for location Paraguay
Filling null values for location Peru
Filling null values for location Philippines
Filling null values for location Poland
Filling null values for location Portugal
Filling null values for location Qatar
Filling null values for location Romania
Filling null values for location Russia
Filling null values for location Rwanda
Filling null values for location Saint Kitts and Nevis
Filling null values for location Saint Lucia
Filling null values for location Saint Vincent and the Grenadines
Filling null values for location San Marino
Filling null values for location Sao Tome and Principe
Filling null values for location Saudi Arabia
Filling null values for location Senegal
Filling null values for location Serbia
Filling null values for location Seychelles
Filling null values for location Sierra Leone
Filling null values for location Singapore
Filling null values for location Slovakia
Filling null values for location Slovenia
Filling null values for location Solomon Islands
Filling null values for location Somalia
Filling null values for location South Africa
Filling null values for location South Sudan
Filling null values for location Spain
Filling null values for location Sri Lanka
Filling null values for location Sudan
Filling null values for location Suriname
Filling null values for location Swaziland
Filling null values for location Sweden
Filling null values for location Switzerland
Filling null values for location Syria
Filling null values for location Taiwan
Filling null values for location Tajikistan
Filling null values for location Tanzania
Filling null values for location Thailand
Filling null values for location Timor
Filling null values for location Togo
Filling null values for location Trinidad and Tobago
Filling null values for location Tunisia
Filling null values for location Turkey
Filling null values for location Uganda
Filling null values for location Ukraine
Filling null values for location United Arab Emirates
Filling null values for location United Kingdom
Filling null values for location United States
Filling null values for location Uruguay
Filling null values for location Uzbekistan
Filling null values for location Vanuatu
Filling null values for location Vatican
Filling null values for location Venezuela
Filling null values for location Vietnam
Filling null values for location Western Sahara
Filling null values for location World
Filling null values for location Yemen
Filling null values for location Zambia
Filling null values for location Zimbabwe
In [30]:
owid_df.isnull().sum().sum()
Out[30]:
145440

All the nulls in oxford_df are fixed. There are still some nulls in owid_df, but some of these aill not be needed, and some will be corrected later.

3.1.1.4. Fix Data Errors

It's also necessary to correct simple data errors. This step will be easier after merging oxford_df and owid_df, so it will be done later (section 3.2.1.2.).

3.1.2. Weekly Time Series (The Economist - Excess Fatalities)

To give a consistent week numbering scheme (necessary for the merge step which will come later) convert start_date and end_date to type datetime, create a new field calendar_week and drop the week feature:

In [31]:
economist_excess_df['start_date'] = pd.to_datetime(
    economist_excess_df['start_date'], format='%Y-%m-%d')
economist_excess_df['end_date'] = pd.to_datetime(
    economist_excess_df['end_date'], format='%Y-%m-%d')
economist_excess_df['calendar_week'] = economist_excess_df[
    'start_date'].dt.isocalendar().week
economist_excess_df.drop(columns='week', inplace=True)

The main feature of interest is excess_deaths. Many of the others can be dropped.

economist_excess_df includes data per country, and a breakdown by region. We are only interested in the country data. Therefore, drop rows where region != country.

In [32]:
rows_to_drop = [i for i in range(economist_excess_df.shape[0]) if
                (economist_excess_df.iloc[i]['country'] !=
                 economist_excess_df.iloc[i]['region'])]
economist_excess_df.drop(index=rows_to_drop, inplace=True)

Finally, drop columns we don't need.

In [33]:
economist_excess_df.drop(columns=['region',
                                  'region_code',
                                  'population',
                                  'start_date',
                                  'end_date',
                                  'year',
                                  'total_deaths',
                                  'covid_deaths',
                                  'expected_deaths',
                                  'non_covid_deaths',
                                  'covid_deaths_per_100k'],
                         inplace=True)
In [34]:
economist_excess_df.isnull().sum()
Out[34]:
country                     0
excess_deaths               0
excess_deaths_per_100k      0
excess_deaths_pct_change    0
calendar_week               0
dtype: int64

No more nulls remain.

In [35]:
economist_excess_df['country'].unique()
Out[35]:
array(['Austria', 'Belgium', 'Brazil', 'Britain', 'Chile', 'Denmark',
       'France', 'Germany', 'Italy', 'Mexico', 'Netherlands', 'Norway',
       'Portugal', 'South Africa', 'Spain', 'Sweden', 'Switzerland',
       'United States'], dtype=object)

This data set will be merged with others later on. One approximation will be made here, that is to rename 'Britain' to 'United Kingdom'. These are not the same entity but since the government measures taken in both are at least similar, it seems reasonable to make this approximation.

In [36]:
economist_excess_df.replace(to_replace="Britain",
                            value="United Kingdom",
                            inplace=True)

3.1.3. Monthly Time Series (The Economist - Excess Fatalities)

This data set will be less useful than the weekly time series but will add a few data points to the clustering analysis later on. A lot of the information in this data frame is regional, and since the analysis will be country-based, this is not so useful. The preprocessing treatment is similar to the weekly data frame above.

In [37]:
rows_to_drop = [i for i in range(economist_monthly_excess_df.shape[0]) if
                (economist_monthly_excess_df.iloc[i]['country'] !=
                 economist_monthly_excess_df.iloc[i]['region'])]
economist_monthly_excess_df.drop(index=rows_to_drop, inplace=True)
economist_monthly_excess_df.drop(columns=['region',
                                          'region_code',
                                          'population',
                                          'start_date',
                                          'end_date',
                                          'year',
                                          'total_deaths',
                                          'covid_deaths',
                                          'expected_deaths',
                                          'non_covid_deaths',
                                          'covid_deaths_per_100k',
                                          'total_deaths_per_7_days',
                                          'covid_deaths_per_7_days',
                                          'expected_deaths_per_7_days',
                                          'excess_deaths_per_7_days',
                                          'non_covid_deaths_per_7_days',
                                          'covid_deaths_per_100k_per_7_days',
                                          'excess_deaths_per_100k_per_7_days'],
                                 inplace=True)
economist_monthly_excess_df.isnull().sum()
Out[37]:
country                     0
month                       0
excess_deaths               0
excess_deaths_per_100k      0
excess_deaths_pct_change    0
dtype: int64
In [38]:
economist_monthly_excess_df['country'].unique()
Out[38]:
array(['Ecuador', 'Peru', 'Russia'], dtype=object)

This adds just three countries to the data.

In [39]:
economist_monthly_excess_df.head()
Out[39]:
country month excess_deaths excess_deaths_per_100k excess_deaths_pct_change
0 Ecuador 1 -126.2 -0.732579 -0.018509
1 Ecuador 2 8.8 0.051083 0.001460
2 Ecuador 3 3430.2 19.911998 0.528471
3 Ecuador 4 14571.7 84.587387 2.376221
4 Ecuador 5 3862.2 22.419718 0.633272

3.2. Merge Datasets

3.2.1. Daily Time Series

3.2.1.1. Merge

It is useful to merge the data sets from Oxford and Our World in Data because they are both daily time series and they provide some complimentary features.

In [40]:
np.setdiff1d(oxford_df['country'].unique(), owid_df['country'].unique())
Out[40]:
array(['Aruba', 'Bermuda', 'Eswatini', 'Faeroe Islands', 'Greenland',
       'Guam', 'Kyrgyz Republic', 'Macao', 'Puerto Rico',
       'Slovak Republic', 'Timor-Leste', 'Turkmenistan',
       'United States Virgin Islands'], dtype=object)
In [41]:
np.setdiff1d(owid_df['country'].unique(), oxford_df['country'].unique())
Out[41]:
array(['Antigua and Barbuda', 'Armenia', 'Equatorial Guinea', 'Grenada',
       'Guinea-Bissau', 'International', 'Kyrgyzstan', 'Liechtenstein',
       'Macedonia', 'Maldives', 'Malta', 'Marshall Islands', 'Montenegro',
       'Saint Kitts and Nevis', 'Saint Lucia',
       'Saint Vincent and the Grenadines', 'Sao Tome and Principe',
       'Slovakia', 'Swaziland', 'Timor', 'Vatican', 'Western Sahara',
       'World'], dtype=object)

Both data frames contain some unique country values. Most of these appear to be either regions of another country, or countries with relatively small numbers of cases, so rather than include these with incomplete data, it is reasonable to drop them from the data set. It would be ideal to do this when the oxford_df and owid_df are merged, using an inner join. However, the join needs to be performed on both country and date, and not all the countries in owid_df include the full date range from 1st January 2020, so this isn't possible. Instead, the merge and tidy-up will be performed in two steps:

  1. Merge on the date and country keys in oxford_df
  2. Drop the remaining countries that are unique to oxford_df

First convert the date field to datetime format.

In [42]:
oxford_df['Date'] = pd.to_datetime(oxford_df['Date'], format='%Y%m%d')
oxford_df.rename(columns={'Date': 'date'}, inplace=True)
owid_df['date'] = pd.to_datetime(owid_df['date'], format='%Y-%m-%d')
In [43]:
combined_daily_df = oxford_df.merge(owid_df,
                                    how='left',
                                    on=['country', 'date'])
# Cannot use 'inner' join because owid_df is missing some data values we need

Now drop countries which are unique to oxford_df:

In [44]:
to_drop = list(np.setdiff1d(oxford_df['country'].unique(),
                            owid_df['country'].unique()))
combined_daily_df.drop(combined_daily_df.loc[
    combined_daily_df['country'].isin(to_drop)].index, inplace=True)

The excess deaths data only exists for a few countries and it's presented as a week-by-week (rather than day-by-day) time series, so it doesn't make sense to merge this into the combined_daily_df.

In [45]:
combined_daily_df.head()
Out[45]:
country CountryCode date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings ... gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
335 Afghanistan AFG 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
336 Afghanistan AFG 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
337 Afghanistan AFG 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
338 Afghanistan AFG 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
339 Afghanistan AFG 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

5 rows × 89 columns

Perhaps a little confusingly, the different data sources use different conventions for labelling their features (lower case and underscores from owid_df, such as total_cases, and a version of camel case from oxford_df, such as ConfirmedCases). Although it may not look good, this is not a big problem so the feature names will be retained as-is.

3.2.1.2. Fix Data Errors

It's also necessary to do some basic error correction on the data. In particular, two of the fields in oxford_df and owid_df should match because they are from the same source. Specifically, the following fields should be equal:

  • ConfirmedCases == total_cases
  • ConfirmedDeaths == total_deaths

This can be checked:

In [46]:
deaths_differences_df = combined_daily_df[
    (combined_daily_df['ConfirmedDeaths'] !=
     combined_daily_df['total_deaths'])][['country',
                                          'ConfirmedDeaths',
                                          'total_deaths']]

deaths_differences_df['Difference'] = abs(
    deaths_differences_df['ConfirmedDeaths'] -
    deaths_differences_df['total_deaths'])

deaths_differences_df[deaths_differences_df['Difference'] ==
                      deaths_differences_df['Difference'].max()]
Out[46]:
country ConfirmedDeaths total_deaths Difference
57725 United States 26057.0 34337.0 8280.0

This shows that there are some differences.

We can make a similar check on the confirmed cases data:

In [47]:
cases_differences_df = combined_daily_df[
    (combined_daily_df['ConfirmedCases'] !=
     combined_daily_df['total_cases'])][['country',
                                         'ConfirmedCases',
                                         'total_cases']]

cases_differences_df['Difference'] = abs(
    cases_differences_df['ConfirmedCases'] -
    cases_differences_df['total_cases'])

cases_differences_df[cases_differences_df['Difference'] ==
                     cases_differences_df['Difference'].max()]
Out[47]:
country ConfirmedCases total_cases Difference
57944 United States 11717827.0 11925959.0 208132.0
In [48]:
cases_differences_df[cases_differences_df['Difference'] ==
                     cases_differences_df['Difference'].max()]
Out[48]:
country ConfirmedCases total_cases Difference
57944 United States 11717827.0 11925959.0 208132.0

Again, there are some differences.

Both data sources are dynamic and updated daily. The differences could be due to some legitimate adjustments/corrections, or it could be due to a time lag in data reporting and import. It was also noted above that the owid_df had fewer null values for total_cases and total_deaths. Both data sets come from reputable sources and both are are likely to be reliable but since we have to choose one source or other in order to perform the rest of the analysis, we will choose to use the total_cases and total_deaths values from Our World in Data. Therefore, drop ConfirmedCases and ConfirmedDeaths, and also iso_code and CountryCode (not needed).

In [49]:
combined_daily_df.drop(columns=['ConfirmedCases',
                                'ConfirmedDeaths',
                                'iso_code',
                                'CountryCode'], inplace=True)

The merge has introduced some additional null values. This is where new dates have been imputed into combined_daily_df for some countries. We can explore these:

In [50]:
print(combined_daily_df[['new_deaths_per_million']].isnull().sum())
print(combined_daily_df[['new_cases_per_million']].isnull().sum())
print(combined_daily_df[['total_cases']].isnull().sum())
print(combined_daily_df[['total_cases_per_million']].isnull().sum())
print(combined_daily_df[['total_deaths']].isnull().sum())
print(combined_daily_df[['total_deaths_per_million']].isnull().sum())
print(combined_daily_df[['new_tests_smoothed']].isnull().sum())
print(combined_daily_df[['new_tests_smoothed_per_thousand']].isnull().sum())
new_deaths_per_million    4072
dtype: int64
new_cases_per_million    4072
dtype: int64
total_cases    4072
dtype: int64
total_cases_per_million    4072
dtype: int64
total_deaths    4072
dtype: int64
total_deaths_per_million    4072
dtype: int64
new_tests_smoothed    4072
dtype: int64
new_tests_smoothed_per_thousand    4072
dtype: int64

Each feature has the same number of null values, so check if they are all null across the same rows:

In [51]:
print(combined_daily_df[combined_daily_df['total_cases'].isnull() &
                        combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['total_deaths'].isnull() &
                        combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['total_cases_per_million'].isnull()
                        & combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['total_deaths_per_million'].isnull()
                        & combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['new_cases_per_million'].isnull()
                        & combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['new_deaths_per_million'].isnull()
                        & combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df['new_tests_smoothed'].isnull() &
                        combined_daily_df['new_cases'] > 0].shape[0])

print(combined_daily_df[combined_daily_df[
    'new_tests_smoothed_per_thousand'].isnull() &
                        combined_daily_df['new_cases'] > 0].shape[0])
0
0
0
0
0
0
0
0

So for all of these features, the NaN values are when new_cases==0, i.e. before the first cases have been recorded. All of these nulls can be replaced with 0.

In [52]:
combined_daily_df.loc[combined_daily_df['total_cases'].isnull(),
                      ['new_cases',
                       'new_deaths',
                       'total_cases',
                       'total_cases_per_million',
                       'total_deaths',
                       'total_deaths_per_million',
                       'new_cases_per_million',
                       'new_deaths_per_million',
                       'new_tests_smoothed',
                       'new_tests_smoothed_per_thousand']] = 0

A certain number of countries have null values for population.

In [53]:
combined_daily_df[combined_daily_df['population'].isnull()]
Out[53]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
60653 Zimbabwe 2020-01-19 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60654 Zimbabwe 2020-01-20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60655 Zimbabwe 2020-01-21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60656 Zimbabwe 2020-01-22 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60969 Zimbabwe 2020-11-30 2.0 0.0 1.0 1.0 2.0 1.0 3.0 1.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

4072 rows × 85 columns

In some cases this can be fixed by assuming that any value of population for the country concerned can be used to fill the missing values (it seems safe to assume no significant change in population during the period of interest). For cases where this can't be done, the countries will be dropped.

In [54]:
countries_null_pop = set(combined_daily_df[
    combined_daily_df['population'].isnull()]['country'])
In [55]:
for c in countries_null_pop:
    pop = combined_daily_df[
        combined_daily_df['country'] == c]['population'].max()
    if math.isnan(pop):
        combined_daily_df.drop(
            index=combined_daily_df[combined_daily_df['country'] == c].index,
            inplace=True)
    else:
        combined_daily_df.loc[(combined_daily_df['country'] == c) &
                              (combined_daily_df['population'].isnull()),
                              'population'] = pop

As a final check, look for data points where total_cases or total_deaths decrease with increasing time. This should never happen in reality but could exist in the data set as an error or as a correction to previous data errors. The following function attempts to make some automatic fixes to the data series when this happens.

In [56]:
def fix_errors(df, feature):
    """Detect and fix errors in the data.

    Total cases and total deaths should not decrease. Check this condition
    and where possible correct it.

    param df: dataframe
    param feature: feature to check and correct
    """
    country_groups = df.groupby(['country'])
    feature_list = []
    for c in country_groups.groups.keys():
        feature_list = country_groups.get_group(c)[feature].tolist()
        corrected = False
        for i in range(len(feature_list)-1):
            # Detect a data error
            if (feature_list[i] > feature_list[i+1]):
                # Correct a one-off low data point
                try:
                    if (feature_list[i] <= feature_list[i+2]):
                        print("Correcting low data point."
                              "Replaced {0} with {1} for country {2}".format(
                                  feature_list[i+1],
                                  feature_list[i],
                                  c))
                        feature_list[i+1] = feature_list[i]
                        corrected = True
                    # Correct a one-off high data point
                    else:
                        if (feature_list[i-1] <= feature_list[i+1]):
                            print("Correcting high data point. "
                                  "Replaced {0} with {1} for country {2}"
                                  .format(
                                      feature_list[i],
                                      feature_list[i-1],
                                      c))
                            feature_list[i] = feature_list[i-1]
                            corrected = True
                        else:
                            print("Not able to correct an erroneous point "
                                  "for for country {0} automatically"
                                  .format(c))
                # Where there is no data point at i+2, i.e. i is penultimate
                except IndexError:
                    print("Correcting penultimate data point. "
                          "Replaced {0} with {1} for country {2}"
                          .format(
                              feature_list[i+1],
                              feature_list[i],
                              c))
                    feature_list[i+1] = feature_list[i]
                    corrected = True
        if corrected is True:
            print("Correcting for country {0}".format(c))
            df.loc[df['country'] == c, feature] = feature_list
In [57]:
fix_errors(combined_daily_df, 'total_cases')
Correcting penultimate data point. Replaced 0.0 with 46215.0 for country Afghanistan
Correcting for country Afghanistan
Correcting penultimate data point. Replaced 0.0 with 37625.0 for country Albania
Correcting for country Albania
Correcting penultimate data point. Replaced 0.0 with 82221.0 for country Algeria
Correcting for country Algeria
Correcting penultimate data point. Replaced 0.0 with 6712.0 for country Andorra
Correcting for country Andorra
Correcting penultimate data point. Replaced 0.0 with 15103.0 for country Angola
Correcting for country Angola
Correcting penultimate data point. Replaced 0.0 with 1418807.0 for country Argentina
Correcting for country Argentina
Correcting penultimate data point. Replaced 0.0 with 27902.0 for country Australia
Correcting for country Australia
Correcting penultimate data point. Replaced 0.0 with 279708.0 for country Austria
Correcting for country Austria
Correcting penultimate data point. Replaced 0.0 with 118195.0 for country Azerbaijan
Correcting for country Azerbaijan
Correcting penultimate data point. Replaced 0.0 with 7517.0 for country Bahamas
Correcting for country Bahamas
Correcting penultimate data point. Replaced 0.0 with 462407.0 for country Bangladesh
Correcting for country Bangladesh
Correcting penultimate data point. Replaced 0.0 with 275.0 for country Barbados
Correcting for country Barbados
Correcting penultimate data point. Replaced 0.0 with 135008.0 for country Belarus
Correcting for country Belarus
Correcting penultimate data point. Replaced 0.0 with 576599.0 for country Belgium
Correcting for country Belgium
Correcting penultimate data point. Replaced 0.0 with 5743.0 for country Belize
Correcting for country Belize
Not able to correct an erroneous point for for country Benin automatically
Correcting penultimate data point. Replaced 0.0 with 2974.0 for country Benin
Correcting for country Benin
Correcting penultimate data point. Replaced 0.0 with 396.0 for country Bhutan
Correcting for country Bhutan
Correcting penultimate data point. Replaced 0.0 with 144622.0 for country Bolivia
Correcting for country Bolivia
Correcting penultimate data point. Replaced 0.0 with 87374.0 for country Bosnia and Herzegovina
Correcting for country Bosnia and Herzegovina
Correcting penultimate data point. Replaced 0.0 with 10258.0 for country Botswana
Correcting for country Botswana
Correcting penultimate data point. Replaced 0.0 with 6314740.0 for country Brazil
Correcting for country Brazil
Correcting penultimate data point. Replaced 0.0 with 150.0 for country Brunei
Correcting for country Brunei
Correcting penultimate data point. Replaced 0.0 with 142486.0 for country Bulgaria
Correcting for country Bulgaria
Correcting penultimate data point. Replaced 0.0 with 2856.0 for country Burkina Faso
Correcting for country Burkina Faso
Correcting penultimate data point. Replaced 0.0 with 681.0 for country Burundi
Correcting for country Burundi
Correcting penultimate data point. Replaced 0.0 with 323.0 for country Cambodia
Correcting for country Cambodia
Correcting penultimate data point. Replaced 0.0 with 24117.0 for country Cameroon
Correcting for country Cameroon
Correcting penultimate data point. Replaced 0.0 with 373662.0 for country Canada
Correcting for country Canada
Correcting penultimate data point. Replaced 0.0 with 10747.0 for country Cape Verde
Correcting for country Cape Verde
Correcting penultimate data point. Replaced 0.0 with 4913.0 for country Central African Republic
Correcting for country Central African Republic
Correcting penultimate data point. Replaced 0.0 with 1682.0 for country Chad
Correcting for country Chad
Correcting penultimate data point. Replaced 0.0 with 550430.0 for country Chile
Correcting for country Chile
Correcting low data point.Replaced 84160.0 with 84161.0 for country China
Correcting penultimate data point. Replaced 0.0 with 92814.0 for country China
Correcting for country China
Correcting penultimate data point. Replaced 0.0 with 1308376.0 for country Colombia
Correcting for country Colombia
Correcting penultimate data point. Replaced 0.0 with 611.0 for country Comoros
Correcting for country Comoros
Correcting penultimate data point. Replaced 0.0 with 5774.0 for country Congo
Correcting for country Congo
Correcting penultimate data point. Replaced 0.0 with 137093.0 for country Costa Rica
Correcting for country Costa Rica
Correcting penultimate data point. Replaced 0.0 with 21310.0 for country Cote d'Ivoire
Correcting for country Cote d'Ivoire
Correcting penultimate data point. Replaced 0.0 with 126612.0 for country Croatia
Correcting for country Croatia
Correcting penultimate data point. Replaced 0.0 with 8233.0 for country Cuba
Correcting for country Cuba
Not able to correct an erroneous point for for country Cyprus automatically
Correcting penultimate data point. Replaced 0.0 with 10383.0 for country Cyprus
Correcting for country Cyprus
Correcting penultimate data point. Replaced 0.0 with 519723.0 for country Czech Republic
Correcting for country Czech Republic
Correcting penultimate data point. Replaced 0.0 with 12702.0 for country Democratic Republic of Congo
Correcting for country Democratic Republic of Congo
Correcting penultimate data point. Replaced 0.0 with 79872.0 for country Denmark
Correcting for country Denmark
Correcting penultimate data point. Replaced 0.0 with 5677.0 for country Djibouti
Correcting for country Djibouti
Correcting penultimate data point. Replaced 0.0 with 85.0 for country Dominica
Correcting for country Dominica
Correcting penultimate data point. Replaced 0.0 with 143473.0 for country Dominican Republic
Correcting for country Dominican Republic
Not able to correct an erroneous point for for country Ecuador automatically
Not able to correct an erroneous point for for country Ecuador automatically
Correcting low data point.Replaced 29509.0 with 29559.0 for country Ecuador
Not able to correct an erroneous point for for country Ecuador automatically
Correcting penultimate data point. Replaced 0.0 with 192117.0 for country Ecuador
Correcting for country Ecuador
Correcting penultimate data point. Replaced 0.0 with 115541.0 for country Egypt
Correcting for country Egypt
Correcting penultimate data point. Replaced 0.0 with 38405.0 for country El Salvador
Correcting for country El Salvador
Correcting penultimate data point. Replaced 0.0 with 577.0 for country Eritrea
Correcting for country Eritrea
Correcting penultimate data point. Replaced 0.0 with 12052.0 for country Estonia
Correcting for country Estonia
Correcting penultimate data point. Replaced 0.0 with 109534.0 for country Ethiopia
Correcting for country Ethiopia
Correcting penultimate data point. Replaced 0.0 with 38.0 for country Fiji
Correcting for country Fiji
Correcting high data point. Replaced 7301.0 with 7295.0 for country Finland
Correcting low data point.Replaced 7293.0 with 7296.0 for country Finland
Correcting penultimate data point. Replaced 0.0 with 24629.0 for country Finland
Correcting for country Finland
Correcting low data point.Replaced 155980.0 with 158168.0 for country France
Correcting high data point. Replaced 169053.0 with 165963.0 for country France
Correcting low data point.Replaced 178184.0 with 178349.0 for country France
Correcting high data point. Replaced 183067.0 with 182709.0 for country France
Not able to correct an erroneous point for for country France automatically
Correcting low data point.Replaced 199476.0 with 200195.0 for country France
Correcting penultimate data point. Replaced 0.0 with 2270573.0 for country France
Correcting for country France
Correcting penultimate data point. Replaced 0.0 with 9191.0 for country Gabon
Correcting for country Gabon
Correcting low data point.Replaced 2585.0 with 2685.0 for country Gambia
Correcting penultimate data point. Replaced 0.0 with 3734.0 for country Gambia
Correcting for country Gambia
Correcting penultimate data point. Replaced 0.0 with 132368.0 for country Georgia
Correcting for country Georgia
Correcting penultimate data point. Replaced 0.0 with 1055691.0 for country Germany
Correcting for country Germany
Correcting penultimate data point. Replaced 0.0 with 51569.0 for country Ghana
Correcting for country Ghana
Correcting penultimate data point. Replaced 0.0 with 104227.0 for country Greece
Correcting for country Greece
Correcting penultimate data point. Replaced 0.0 with 121971.0 for country Guatemala
Correcting for country Guatemala
Correcting penultimate data point. Replaced 0.0 with 13039.0 for country Guinea
Correcting for country Guinea
Not able to correct an erroneous point for for country Guyana automatically
Correcting penultimate data point. Replaced 0.0 with 5376.0 for country Guyana
Correcting for country Guyana
Correcting penultimate data point. Replaced 0.0 with 9272.0 for country Haiti
Correcting for country Haiti
Correcting low data point.Replaced 2080.0 with 2100.0 for country Honduras
Correcting penultimate data point. Replaced 0.0 with 107888.0 for country Honduras
Correcting for country Honduras
Correcting penultimate data point. Replaced 0.0 with 211527.0 for country Hungary
Correcting for country Hungary
Correcting penultimate data point. Replaced 0.0 with 5381.0 for country Iceland
Correcting for country Iceland
Correcting penultimate data point. Replaced 0.0 with 9431691.0 for country India
Correcting for country India
Correcting penultimate data point. Replaced 0.0 with 534266.0 for country Indonesia
Correcting for country Indonesia
Correcting penultimate data point. Replaced 0.0 with 948749.0 for country Iran
Correcting for country Iran
Correcting penultimate data point. Replaced 0.0 with 550435.0 for country Iraq
Correcting for country Iraq
Correcting penultimate data point. Replaced 0.0 with 72241.0 for country Ireland
Correcting for country Ireland
Correcting penultimate data point. Replaced 0.0 with 335598.0 for country Israel
Correcting for country Israel
Correcting low data point.Replaced 238011.0 with 238159.0 for country Italy
Correcting penultimate data point. Replaced 0.0 with 1585178.0 for country Italy
Correcting for country Italy
Correcting penultimate data point. Replaced 0.0 with 10709.0 for country Jamaica
Correcting for country Jamaica
Correcting penultimate data point. Replaced 0.0 with 147515.0 for country Japan
Correcting for country Japan
Not able to correct an erroneous point for for country Jordan automatically
Correcting penultimate data point. Replaced 0.0 with 214307.0 for country Jordan
Correcting for country Jordan
Correcting penultimate data point. Replaced 0.0 with 131659.0 for country Kazakhstan
Correcting for country Kazakhstan
Correcting penultimate data point. Replaced 0.0 with 83316.0 for country Kenya
Correcting for country Kenya
Correcting penultimate data point. Replaced 0.0 with 39057.0 for country Kosovo
Correcting for country Kosovo
Correcting penultimate data point. Replaced 0.0 with 142426.0 for country Kuwait
Correcting for country Kuwait
Correcting penultimate data point. Replaced 0.0 with 39.0 for country Laos
Correcting for country Laos
Correcting penultimate data point. Replaced 0.0 with 16975.0 for country Latvia
Correcting for country Latvia
Correcting penultimate data point. Replaced 0.0 with 126944.0 for country Lebanon
Correcting for country Lebanon
Correcting penultimate data point. Replaced 0.0 with 2109.0 for country Lesotho
Correcting for country Lesotho
Correcting penultimate data point. Replaced 0.0 with 1595.0 for country Liberia
Correcting for country Liberia
Correcting penultimate data point. Replaced 0.0 with 82430.0 for country Libya
Correcting for country Libya
Not able to correct an erroneous point for for country Lithuania automatically
Correcting penultimate data point. Replaced 0.0 with 60193.0 for country Lithuania
Correcting for country Lithuania
Not able to correct an erroneous point for for country Luxembourg automatically
Correcting penultimate data point. Replaced 0.0 with 33409.0 for country Luxembourg
Correcting for country Luxembourg
Not able to correct an erroneous point for for country Madagascar automatically
Correcting penultimate data point. Replaced 0.0 with 17341.0 for country Madagascar
Correcting for country Madagascar
Correcting penultimate data point. Replaced 0.0 with 6025.0 for country Malawi
Correcting for country Malawi
Correcting penultimate data point. Replaced 0.0 with 64485.0 for country Malaysia
Correcting for country Malaysia
Correcting penultimate data point. Replaced 0.0 with 4688.0 for country Mali
Correcting for country Mali
Correcting penultimate data point. Replaced 0.0 with 8547.0 for country Mauritania
Correcting for country Mauritania
Not able to correct an erroneous point for for country Mauritius automatically
Correcting penultimate data point. Replaced 0.0 with 501.0 for country Mauritius
Correcting for country Mauritius
Correcting penultimate data point. Replaced 0.0 with 1107071.0 for country Mexico
Correcting for country Mexico
Correcting penultimate data point. Replaced 0.0 with 107017.0 for country Moldova
Correcting for country Moldova
Not able to correct an erroneous point for for country Monaco automatically
Correcting penultimate data point. Replaced 0.0 with 608.0 for country Monaco
Correcting for country Monaco
Correcting penultimate data point. Replaced 0.0 with 791.0 for country Mongolia
Correcting for country Mongolia
Correcting penultimate data point. Replaced 0.0 with 353803.0 for country Morocco
Correcting for country Morocco
Correcting penultimate data point. Replaced 0.0 with 15613.0 for country Mozambique
Correcting for country Mozambique
Correcting penultimate data point. Replaced 0.0 with 89486.0 for country Myanmar
Correcting for country Myanmar
Correcting penultimate data point. Replaced 0.0 with 14345.0 for country Namibia
Correcting for country Namibia
Correcting low data point.Replaced 249.0 with 250.0 for country Nepal
Correcting penultimate data point. Replaced 0.0 with 231978.0 for country Nepal
Correcting for country Nepal
Correcting penultimate data point. Replaced 0.0 with 527336.0 for country Netherlands
Correcting for country Netherlands
Correcting low data point.Replaced 1469.0 with 1470.0 for country New Zealand
Correcting low data point.Replaced 1486.0 with 1487.0 for country New Zealand
Correcting for country New Zealand
Correcting penultimate data point. Replaced 0.0 with 5784.0 for country Nicaragua
Correcting for country Nicaragua
Correcting high data point. Replaced 1136.0 with 1124.0 for country Niger
Correcting penultimate data point. Replaced 0.0 with 1516.0 for country Niger
Correcting for country Niger
Correcting penultimate data point. Replaced 0.0 with 67412.0 for country Nigeria
Correcting for country Nigeria
Correcting penultimate data point. Replaced 0.0 with 35828.0 for country Norway
Correcting for country Norway
Correcting penultimate data point. Replaced 0.0 with 123484.0 for country Oman
Correcting for country Oman
Correcting penultimate data point. Replaced 0.0 with 398024.0 for country Pakistan
Correcting for country Pakistan
Correcting penultimate data point. Replaced 0.0 with 83585.0 for country Palestine
Correcting for country Palestine
Correcting penultimate data point. Replaced 0.0 with 164729.0 for country Panama
Correcting for country Panama
Correcting high data point. Replaced 287.0 with 214.0 for country Papua New Guinea
Correcting penultimate data point. Replaced 0.0 with 645.0 for country Papua New Guinea
Correcting for country Papua New Guinea
Correcting penultimate data point. Replaced 0.0 with 81906.0 for country Paraguay
Correcting for country Paraguay
Correcting penultimate data point. Replaced 0.0 with 962530.0 for country Peru
Correcting for country Peru
Correcting penultimate data point. Replaced 0.0 with 429864.0 for country Philippines
Correcting for country Philippines
Correcting penultimate data point. Replaced 0.0 with 985075.0 for country Poland
Correcting for country Poland
Correcting high data point. Replaced 25351.0 with 25045.0 for country Portugal
Correcting penultimate data point. Replaced 0.0 with 294799.0 for country Portugal
Correcting for country Portugal
Correcting penultimate data point. Replaced 0.0 with 138648.0 for country Qatar
Correcting for country Qatar
Correcting penultimate data point. Replaced 0.0 with 471536.0 for country Romania
Correcting for country Romania
Correcting penultimate data point. Replaced 0.0 with 2249890.0 for country Russia
Correcting for country Russia
Correcting high data point. Replaced 637.0 with 623.0 for country San Marino
Not able to correct an erroneous point for for country San Marino automatically
Correcting penultimate data point. Replaced 0.0 with 1586.0 for country San Marino
Correcting for country San Marino
Correcting penultimate data point. Replaced 0.0 with 357128.0 for country Saudi Arabia
Correcting for country Saudi Arabia
Correcting penultimate data point. Replaced 0.0 with 16075.0 for country Senegal
Correcting for country Senegal
Correcting penultimate data point. Replaced 0.0 with 169214.0 for country Serbia
Correcting for country Serbia
Correcting penultimate data point. Replaced 0.0 with 173.0 for country Seychelles
Correcting for country Seychelles
Correcting penultimate data point. Replaced 0.0 with 2411.0 for country Sierra Leone
Correcting for country Sierra Leone
Correcting penultimate data point. Replaced 0.0 with 58213.0 for country Singapore
Correcting for country Singapore
Correcting penultimate data point. Replaced 0.0 with 75381.0 for country Slovenia
Correcting for country Slovenia
Correcting penultimate data point. Replaced 0.0 with 17.0 for country Solomon Islands
Correcting for country Solomon Islands
Correcting penultimate data point. Replaced 0.0 with 4451.0 for country Somalia
Correcting for country Somalia
Correcting penultimate data point. Replaced 0.0 with 787702.0 for country South Africa
Correcting for country South Africa
Correcting penultimate data point. Replaced 0.0 with 3109.0 for country South Sudan
Correcting for country South Sudan
Not able to correct an erroneous point for for country Spain automatically
Correcting low data point.Replaced 235400.0 with 235772.0 for country Spain
Correcting penultimate data point. Replaced 0.0 with 1628208.0 for country Spain
Correcting for country Spain
Correcting penultimate data point. Replaced 0.0 with 23484.0 for country Sri Lanka
Correcting for country Sri Lanka
Correcting penultimate data point. Replaced 0.0 with 17404.0 for country Sudan
Correcting for country Sudan
Correcting penultimate data point. Replaced 0.0 with 5312.0 for country Suriname
Correcting for country Suriname
Correcting penultimate data point. Replaced 0.0 with 243129.0 for country Sweden
Correcting for country Sweden
Correcting penultimate data point. Replaced 0.0 with 318290.0 for country Switzerland
Correcting for country Switzerland
Correcting penultimate data point. Replaced 0.0 with 7797.0 for country Syria
Correcting for country Syria
Correcting low data point.Replaced 474.0 with 475.0 for country Taiwan
Correcting high data point. Replaced 479.0 with 477.0 for country Taiwan
Correcting penultimate data point. Replaced 0.0 with 651.0 for country Taiwan
Correcting for country Taiwan
Correcting penultimate data point. Replaced 0.0 with 12155.0 for country Tajikistan
Correcting for country Tajikistan
Correcting penultimate data point. Replaced 0.0 with 509.0 for country Tanzania
Correcting for country Tanzania
Correcting penultimate data point. Replaced 0.0 with 3998.0 for country Thailand
Correcting for country Thailand
Correcting penultimate data point. Replaced 0.0 with 2962.0 for country Togo
Correcting for country Togo
Correcting penultimate data point. Replaced 0.0 with 6660.0 for country Trinidad and Tobago
Correcting for country Trinidad and Tobago
Correcting penultimate data point. Replaced 0.0 with 96251.0 for country Tunisia
Correcting for country Tunisia
Correcting penultimate data point. Replaced 0.0 with 607628.0 for country Turkey
Correcting for country Turkey
Correcting high data point. Replaced 56.0 with 55.0 for country Uganda
Not able to correct an erroneous point for for country Uganda automatically
Correcting penultimate data point. Replaced 0.0 with 20145.0 for country Uganda
Correcting for country Uganda
Correcting penultimate data point. Replaced 0.0 with 742105.0 for country Ukraine
Correcting for country Ukraine
Correcting penultimate data point. Replaced 0.0 with 167753.0 for country United Arab Emirates
Correcting for country United Arab Emirates
Correcting penultimate data point. Replaced 0.0 with 1621305.0 for country United Kingdom
Correcting for country United Kingdom
Correcting penultimate data point. Replaced 0.0 with 13383320.0 for country United States
Correcting for country United States
Not able to correct an erroneous point for for country Uruguay automatically
Correcting penultimate data point. Replaced 0.0 with 5716.0 for country Uruguay
Correcting for country Uruguay
Correcting penultimate data point. Replaced 0.0 with 72870.0 for country Uzbekistan
Correcting for country Uzbekistan
Correcting penultimate data point. Replaced 0.0 with 1.0 for country Vanuatu
Correcting for country Vanuatu
Correcting penultimate data point. Replaced 0.0 with 102040.0 for country Venezuela
Correcting for country Venezuela
Correcting penultimate data point. Replaced 0.0 with 1343.0 for country Vietnam
Correcting for country Vietnam
Correcting low data point.Replaced 1831.0 with 1832.0 for country Yemen
Correcting penultimate data point. Replaced 0.0 with 2177.0 for country Yemen
Correcting for country Yemen
Correcting penultimate data point. Replaced 0.0 with 17608.0 for country Zambia
Correcting for country Zambia
Not able to correct an erroneous point for for country Zimbabwe automatically
Correcting penultimate data point. Replaced 0.0 with 9822.0 for country Zimbabwe
Correcting for country Zimbabwe
In [58]:
fix_errors(combined_daily_df, 'total_deaths')
Correcting penultimate data point. Replaced 0.0 with 1763.0 for country Afghanistan
Correcting for country Afghanistan
Correcting penultimate data point. Replaced 0.0 with 798.0 for country Albania
Correcting for country Albania
Correcting penultimate data point. Replaced 0.0 with 2410.0 for country Algeria
Correcting for country Algeria
Correcting penultimate data point. Replaced 0.0 with 76.0 for country Andorra
Correcting for country Andorra
Correcting low data point.Replaced 208.0 with 211.0 for country Angola
Correcting penultimate data point. Replaced 0.0 with 346.0 for country Angola
Correcting for country Angola
Correcting penultimate data point. Replaced 0.0 with 38473.0 for country Argentina
Correcting for country Argentina
Not able to correct an erroneous point for for country Australia automatically
Correcting penultimate data point. Replaced 0.0 with 908.0 for country Australia
Correcting for country Australia
Correcting low data point.Replaced 710.0 with 711.0 for country Austria
Correcting low data point.Replaced 851.0 with 852.0 for country Austria
Correcting penultimate data point. Replaced 0.0 with 3105.0 for country Austria
Correcting for country Austria
Correcting penultimate data point. Replaced 0.0 with 1361.0 for country Azerbaijan
Correcting for country Azerbaijan
Correcting penultimate data point. Replaced 0.0 with 163.0 for country Bahamas
Correcting for country Bahamas
Correcting penultimate data point. Replaced 0.0 with 6609.0 for country Bangladesh
Correcting for country Bangladesh
Correcting penultimate data point. Replaced 0.0 with 7.0 for country Barbados
Correcting for country Barbados
Correcting penultimate data point. Replaced 0.0 with 1151.0 for country Belarus
Correcting for country Belarus
Not able to correct an erroneous point for for country Belgium automatically
Correcting penultimate data point. Replaced 0.0 with 16547.0 for country Belgium
Correcting for country Belgium
Correcting penultimate data point. Replaced 0.0 with 147.0 for country Belize
Correcting for country Belize
Correcting penultimate data point. Replaced 0.0 with 43.0 for country Benin
Correcting for country Benin
Correcting penultimate data point. Replaced 0.0 with 8952.0 for country Bolivia
Correcting for country Bolivia
Correcting penultimate data point. Replaced 0.0 with 2620.0 for country Bosnia and Herzegovina
Correcting for country Bosnia and Herzegovina
Correcting penultimate data point. Replaced 0.0 with 31.0 for country Botswana
Correcting for country Botswana
Correcting penultimate data point. Replaced 0.0 with 172833.0 for country Brazil
Correcting for country Brazil
Correcting penultimate data point. Replaced 0.0 with 3.0 for country Brunei
Correcting for country Brunei
Correcting penultimate data point. Replaced 0.0 with 3814.0 for country Bulgaria
Correcting for country Bulgaria
Correcting penultimate data point. Replaced 0.0 with 68.0 for country Burkina Faso
Correcting for country Burkina Faso
Correcting penultimate data point. Replaced 0.0 with 1.0 for country Burundi
Correcting for country Burundi
Correcting penultimate data point. Replaced 0.0 with 437.0 for country Cameroon
Correcting for country Cameroon
Correcting penultimate data point. Replaced 0.0 with 12046.0 for country Canada
Correcting for country Canada
Correcting penultimate data point. Replaced 0.0 with 105.0 for country Cape Verde
Correcting for country Cape Verde
Correcting penultimate data point. Replaced 0.0 with 63.0 for country Central African Republic
Correcting for country Central African Republic
Correcting penultimate data point. Replaced 0.0 with 101.0 for country Chad
Correcting for country Chad
Correcting penultimate data point. Replaced 0.0 with 15356.0 for country Chile
Correcting for country Chile
Correcting penultimate data point. Replaced 0.0 with 4743.0 for country China
Correcting for country China
Correcting penultimate data point. Replaced 0.0 with 36584.0 for country Colombia
Correcting for country Colombia
Correcting penultimate data point. Replaced 0.0 with 7.0 for country Comoros
Correcting for country Comoros
Not able to correct an erroneous point for for country Congo automatically
Correcting penultimate data point. Replaced 0.0 with 94.0 for country Congo
Correcting for country Congo
Correcting penultimate data point. Replaced 0.0 with 1690.0 for country Costa Rica
Correcting for country Costa Rica
Correcting penultimate data point. Replaced 0.0 with 131.0 for country Cote d'Ivoire
Correcting for country Cote d'Ivoire
Correcting penultimate data point. Replaced 0.0 with 1712.0 for country Croatia
Correcting for country Croatia
Correcting high data point. Replaced 89.0 with 88.0 for country Cuba
Correcting penultimate data point. Replaced 0.0 with 134.0 for country Cuba
Correcting for country Cuba
Not able to correct an erroneous point for for country Cyprus automatically
Correcting high data point. Replaced 35.0 with 27.0 for country Cyprus
Correcting penultimate data point. Replaced 0.0 with 48.0 for country Cyprus
Correcting for country Cyprus
Correcting low data point.Replaced 297.0 with 298.0 for country Czech Republic
Correcting high data point. Replaced 330.0 with 328.0 for country Czech Republic
Correcting low data point.Replaced 328.0 with 329.0 for country Czech Republic
Not able to correct an erroneous point for for country Czech Republic automatically
Not able to correct an erroneous point for for country Czech Republic automatically
Not able to correct an erroneous point for for country Czech Republic automatically
Correcting low data point.Replaced 383.0 with 386.0 for country Czech Republic
Correcting high data point. Replaced 390.0 with 388.0 for country Czech Republic
Correcting penultimate data point. Replaced 0.0 with 8138.0 for country Czech Republic
Correcting for country Czech Republic
Correcting penultimate data point. Replaced 0.0 with 333.0 for country Democratic Republic of Congo
Correcting for country Democratic Republic of Congo
Correcting low data point.Replaced 527.0 with 533.0 for country Denmark
Correcting penultimate data point. Replaced 0.0 with 829.0 for country Denmark
Correcting for country Denmark
Correcting penultimate data point. Replaced 0.0 with 61.0 for country Djibouti
Correcting for country Djibouti
Correcting penultimate data point. Replaced 0.0 with 2330.0 for country Dominican Republic
Correcting for country Dominican Republic
Correcting penultimate data point. Replaced 0.0 with 13423.0 for country Ecuador
Correcting for country Ecuador
Correcting penultimate data point. Replaced 0.0 with 6636.0 for country Egypt
Correcting for country Egypt
Correcting penultimate data point. Replaced 0.0 with 1111.0 for country El Salvador
Correcting for country El Salvador
Not able to correct an erroneous point for for country Estonia automatically
Correcting penultimate data point. Replaced 0.0 with 112.0 for country Estonia
Correcting for country Estonia
Correcting penultimate data point. Replaced 0.0 with 1700.0 for country Ethiopia
Correcting for country Ethiopia
Correcting penultimate data point. Replaced 0.0 with 2.0 for country Fiji
Correcting for country Fiji
Correcting low data point.Replaced 27.0 with 28.0 for country Finland
Correcting low data point.Replaced 318.0 with 320.0 for country Finland
Not able to correct an erroneous point for for country Finland automatically
Not able to correct an erroneous point for for country Finland automatically
Not able to correct an erroneous point for for country Finland automatically
Correcting penultimate data point. Replaced 0.0 with 393.0 for country Finland
Correcting for country Finland
Not able to correct an erroneous point for for country France automatically
Correcting high data point. Replaced 30180.0 with 30155.0 for country France
Correcting penultimate data point. Replaced 0.0 with 52410.0 for country France
Correcting for country France
Correcting penultimate data point. Replaced 0.0 with 59.0 for country Gabon
Correcting for country Gabon
Correcting penultimate data point. Replaced 0.0 with 123.0 for country Gambia
Correcting for country Gambia
Correcting penultimate data point. Replaced 0.0 with 1230.0 for country Georgia
Correcting for country Georgia
Correcting low data point.Replaced 2736.0 with 2767.0 for country Germany
Correcting low data point.Replaced 9022.0 with 9023.0 for country Germany
Correcting penultimate data point. Replaced 0.0 with 16306.0 for country Germany
Correcting for country Germany
Correcting penultimate data point. Replaced 0.0 with 323.0 for country Ghana
Correcting for country Ghana
Correcting penultimate data point. Replaced 0.0 with 2321.0 for country Greece
Correcting for country Greece
Correcting penultimate data point. Replaced 0.0 with 4166.0 for country Guatemala
Correcting for country Guatemala
Correcting penultimate data point. Replaced 0.0 with 76.0 for country Guinea
Correcting for country Guinea
Correcting penultimate data point. Replaced 0.0 with 150.0 for country Guyana
Correcting for country Guyana
Correcting penultimate data point. Replaced 0.0 with 232.0 for country Haiti
Correcting for country Haiti
Correcting penultimate data point. Replaced 0.0 with 2909.0 for country Honduras
Correcting for country Honduras
Correcting penultimate data point. Replaced 0.0 with 4672.0 for country Hungary
Correcting for country Hungary
Not able to correct an erroneous point for for country Iceland automatically
Correcting penultimate data point. Replaced 0.0 with 26.0 for country Iceland
Correcting for country Iceland
Correcting low data point.Replaced 4.0 with 5.0 for country India
Correcting penultimate data point. Replaced 0.0 with 137139.0 for country India
Correcting for country India
Correcting penultimate data point. Replaced 0.0 with 16815.0 for country Indonesia
Correcting for country Indonesia
Correcting penultimate data point. Replaced 0.0 with 47874.0 for country Iran
Correcting for country Iran
Correcting penultimate data point. Replaced 0.0 with 12224.0 for country Iraq
Correcting for country Iraq
Correcting low data point.Replaced 1606.0 with 1608.0 for country Ireland
Correcting low data point.Replaced 1650.0 with 1652.0 for country Ireland
Correcting low data point.Replaced 1738.0 with 1742.0 for country Ireland
Not able to correct an erroneous point for for country Ireland automatically
Correcting low data point.Replaced 1801.0 with 1806.0 for country Ireland
Correcting penultimate data point. Replaced 0.0 with 2052.0 for country Ireland
Correcting for country Ireland
Correcting penultimate data point. Replaced 0.0 with 2864.0 for country Israel
Correcting for country Israel
Correcting low data point.Replaced 34644.0 with 34675.0 for country Italy
Correcting penultimate data point. Replaced 0.0 with 54904.0 for country Italy
Correcting for country Italy
Correcting penultimate data point. Replaced 0.0 with 256.0 for country Jamaica
Correcting for country Jamaica
Correcting low data point.Replaced 915.0 with 916.0 for country Japan
Correcting penultimate data point. Replaced 0.0 with 2057.0 for country Japan
Correcting for country Japan
Correcting penultimate data point. Replaced 0.0 with 2694.0 for country Jordan
Correcting for country Jordan
Not able to correct an erroneous point for for country Kazakhstan automatically
Correcting low data point.Replaced 5.0 with 6.0 for country Kazakhstan
Correcting penultimate data point. Replaced 0.0 with 1990.0 for country Kazakhstan
Correcting for country Kazakhstan
Correcting penultimate data point. Replaced 0.0 with 1452.0 for country Kenya
Correcting for country Kenya
Correcting penultimate data point. Replaced 0.0 with 1005.0 for country Kosovo
Correcting for country Kosovo
Correcting penultimate data point. Replaced 0.0 with 878.0 for country Kuwait
Correcting for country Kuwait
Correcting penultimate data point. Replaced 0.0 with 197.0 for country Latvia
Correcting for country Latvia
Correcting penultimate data point. Replaced 0.0 with 1004.0 for country Lebanon
Correcting for country Lebanon
Correcting penultimate data point. Replaced 0.0 with 44.0 for country Lesotho
Correcting for country Lesotho
Correcting penultimate data point. Replaced 0.0 with 83.0 for country Liberia
Correcting for country Liberia
Correcting high data point. Replaced 76.0 with 67.0 for country Libya
Correcting penultimate data point. Replaced 0.0 with 1166.0 for country Libya
Correcting for country Libya
Correcting penultimate data point. Replaced 0.0 with 493.0 for country Lithuania
Correcting for country Lithuania
Correcting low data point.Replaced 67.0 with 69.0 for country Luxembourg
Correcting penultimate data point. Replaced 0.0 with 300.0 for country Luxembourg
Correcting for country Luxembourg
Correcting penultimate data point. Replaced 0.0 with 251.0 for country Madagascar
Correcting for country Madagascar
Correcting penultimate data point. Replaced 0.0 with 185.0 for country Malawi
Correcting for country Malawi
Correcting penultimate data point. Replaced 0.0 with 357.0 for country Malaysia
Correcting for country Malaysia
Correcting penultimate data point. Replaced 0.0 with 152.0 for country Mali
Correcting for country Mali
Correcting penultimate data point. Replaced 0.0 with 175.0 for country Mauritania
Correcting for country Mauritania
Correcting penultimate data point. Replaced 0.0 with 10.0 for country Mauritius
Correcting for country Mauritius
Correcting penultimate data point. Replaced 0.0 with 105655.0 for country Mexico
Correcting for country Mexico
Correcting penultimate data point. Replaced 0.0 with 2290.0 for country Moldova
Correcting for country Moldova
Not able to correct an erroneous point for for country Monaco automatically
Correcting penultimate data point. Replaced 0.0 with 3.0 for country Monaco
Correcting for country Monaco
Correcting penultimate data point. Replaced 0.0 with 5789.0 for country Morocco
Correcting for country Morocco
Correcting penultimate data point. Replaced 0.0 with 130.0 for country Mozambique
Correcting for country Mozambique
Correcting penultimate data point. Replaced 0.0 with 1918.0 for country Myanmar
Correcting for country Myanmar
Correcting penultimate data point. Replaced 0.0 with 151.0 for country Namibia
Correcting for country Namibia
Correcting penultimate data point. Replaced 0.0 with 1479.0 for country Nepal
Correcting for country Nepal
Correcting low data point.Replaced 6155.0 with 6156.0 for country Netherlands
Not able to correct an erroneous point for for country Netherlands automatically
Not able to correct an erroneous point for for country Netherlands automatically
Correcting high data point. Replaced 6178.0 with 6159.0 for country Netherlands
Correcting low data point.Replaced 6162.0 with 6178.0 for country Netherlands
Correcting penultimate data point. Replaced 0.0 with 9426.0 for country Netherlands
Correcting for country Netherlands
Correcting penultimate data point. Replaced 0.0 with 160.0 for country Nicaragua
Correcting for country Nicaragua
Correcting penultimate data point. Replaced 0.0 with 70.0 for country Niger
Correcting for country Niger
Correcting low data point.Replaced 1154.0 with 1155.0 for country Nigeria
Correcting penultimate data point. Replaced 0.0 with 1173.0 for country Nigeria
Correcting for country Nigeria
Correcting penultimate data point. Replaced 0.0 with 328.0 for country Norway
Correcting for country Norway
Correcting penultimate data point. Replaced 0.0 with 1418.0 for country Oman
Correcting for country Oman
Correcting penultimate data point. Replaced 0.0 with 8025.0 for country Pakistan
Correcting for country Pakistan
Correcting penultimate data point. Replaced 0.0 with 717.0 for country Palestine
Correcting for country Palestine
Correcting penultimate data point. Replaced 0.0 with 3060.0 for country Panama
Correcting for country Panama
Correcting penultimate data point. Replaced 0.0 with 7.0 for country Papua New Guinea
Correcting for country Papua New Guinea
Correcting penultimate data point. Replaced 0.0 with 1743.0 for country Paraguay
Correcting for country Paraguay
Correcting penultimate data point. Replaced 0.0 with 35923.0 for country Peru
Correcting for country Peru
Correcting high data point. Replaced 19.0 with 12.0 for country Philippines
Correcting penultimate data point. Replaced 0.0 with 8373.0 for country Philippines
Correcting for country Philippines
Correcting penultimate data point. Replaced 0.0 with 17029.0 for country Poland
Correcting for country Poland
Correcting penultimate data point. Replaced 0.0 with 4427.0 for country Portugal
Correcting for country Portugal
Correcting penultimate data point. Replaced 0.0 with 237.0 for country Qatar
Correcting for country Qatar
Correcting penultimate data point. Replaced 0.0 with 11193.0 for country Romania
Correcting for country Romania
Correcting penultimate data point. Replaced 0.0 with 39127.0 for country Russia
Correcting for country Russia
Correcting penultimate data point. Replaced 0.0 with 45.0 for country San Marino
Correcting for country San Marino
Correcting penultimate data point. Replaced 0.0 with 5884.0 for country Saudi Arabia
Correcting for country Saudi Arabia
Correcting penultimate data point. Replaced 0.0 with 333.0 for country Senegal
Correcting for country Senegal
Not able to correct an erroneous point for for country Serbia automatically
Correcting penultimate data point. Replaced 0.0 with 1549.0 for country Serbia
Correcting for country Serbia
Correcting penultimate data point. Replaced 0.0 with 74.0 for country Sierra Leone
Correcting for country Sierra Leone
Correcting penultimate data point. Replaced 0.0 with 29.0 for country Singapore
Correcting for country Singapore
Correcting penultimate data point. Replaced 0.0 with 1384.0 for country Slovenia
Correcting for country Slovenia
Not able to correct an erroneous point for for country Somalia automatically
Correcting penultimate data point. Replaced 0.0 with 113.0 for country Somalia
Correcting for country Somalia
Correcting penultimate data point. Replaced 0.0 with 21477.0 for country South Africa
Correcting for country South Africa
Correcting penultimate data point. Replaced 0.0 with 61.0 for country South Sudan
Correcting for country South Sudan
Not able to correct an erroneous point for for country Spain automatically
Correcting low data point.Replaced 28579.0 with 28581.0 for country Spain
Correcting penultimate data point. Replaced 0.0 with 44668.0 for country Spain
Correcting for country Spain
Correcting penultimate data point. Replaced 0.0 with 116.0 for country Sri Lanka
Correcting for country Sri Lanka
Correcting penultimate data point. Replaced 0.0 with 1235.0 for country Sudan
Correcting for country Sudan
Correcting penultimate data point. Replaced 0.0 with 117.0 for country Suriname
Correcting for country Suriname
Not able to correct an erroneous point for for country Sweden automatically
Not able to correct an erroneous point for for country Sweden automatically
Correcting penultimate data point. Replaced 0.0 with 6681.0 for country Sweden
Correcting for country Sweden
Not able to correct an erroneous point for for country Switzerland automatically
Correcting penultimate data point. Replaced 0.0 with 4650.0 for country Switzerland
Correcting for country Switzerland
Correcting penultimate data point. Replaced 0.0 with 413.0 for country Syria
Correcting for country Syria
Correcting penultimate data point. Replaced 0.0 with 7.0 for country Taiwan
Correcting for country Taiwan
Correcting penultimate data point. Replaced 0.0 with 86.0 for country Tajikistan
Correcting for country Tajikistan
Correcting penultimate data point. Replaced 0.0 with 21.0 for country Tanzania
Correcting for country Tanzania
Correcting penultimate data point. Replaced 0.0 with 60.0 for country Thailand
Correcting for country Thailand
Correcting penultimate data point. Replaced 0.0 with 64.0 for country Togo
Correcting for country Togo
Correcting penultimate data point. Replaced 0.0 with 120.0 for country Trinidad and Tobago
Correcting for country Trinidad and Tobago
Correcting penultimate data point. Replaced 0.0 with 3219.0 for country Tunisia
Correcting for country Tunisia
Correcting penultimate data point. Replaced 0.0 with 13558.0 for country Turkey
Correcting for country Turkey
Correcting penultimate data point. Replaced 0.0 with 201.0 for country Uganda
Correcting for country Uganda
Correcting penultimate data point. Replaced 0.0 with 12613.0 for country Ukraine
Correcting for country Ukraine
Correcting penultimate data point. Replaced 0.0 with 570.0 for country United Arab Emirates
Correcting for country United Arab Emirates
Correcting penultimate data point. Replaced 0.0 with 58342.0 for country United Kingdom
Correcting for country United Kingdom
Correcting penultimate data point. Replaced 0.0 with 266873.0 for country United States
Correcting for country United States
Correcting penultimate data point. Replaced 0.0 with 76.0 for country Uruguay
Correcting for country Uruguay
Correcting penultimate data point. Replaced 0.0 with 608.0 for country Uzbekistan
Correcting for country Uzbekistan
Correcting high data point. Replaced 16.0 with 10.0 for country Venezuela
Correcting penultimate data point. Replaced 0.0 with 894.0 for country Venezuela
Correcting for country Venezuela
Correcting high data point. Replaced 26.0 with 25.0 for country Vietnam
Correcting penultimate data point. Replaced 0.0 with 35.0 for country Vietnam
Correcting for country Vietnam
Correcting penultimate data point. Replaced 0.0 with 617.0 for country Yemen
Correcting for country Yemen
Correcting penultimate data point. Replaced 0.0 with 357.0 for country Zambia
Correcting for country Zambia
Correcting penultimate data point. Replaced 0.0 with 275.0 for country Zimbabwe
Correcting for country Zimbabwe

There are only a small number of errors which could not be corrected by this. This is acceptable.

After correcting total_deaths and total_cases, it's necessary to recalculate new_cases and new_deaths to be consistent with this.

In [59]:
country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    # Change in confirmed cases
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          'new_cases'] = country_group['total_cases'].diff()
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          'new_deaths'] = country_group['total_deaths'].diff()

Using diff() above will introduce null values on the first row. Correct for these now, and any examples where new_cases and new_deaths are calculated as less than 0 (which is an error):

In [60]:
combined_daily_df.loc[
    combined_daily_df['new_cases'].isnull(), 'new_cases'] = 0
combined_daily_df.loc[
    combined_daily_df['new_deaths'].isnull(), 'new_deaths'] = 0
combined_daily_df.loc[combined_daily_df['new_cases'] < 0, 'new_cases'] = 0
combined_daily_df.loc[combined_daily_df['new_deaths'] < 0, 'new_deaths'] = 0
In [61]:
combined_daily_df.head()
Out[61]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... gdp_per_capita extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

5 rows × 85 columns

3.1.2. Weekly Time Series

3.1.2.1. Convert Daily Time Series to Weekly Time Series

First convert the daily time series data into a weekly time series. This will make it possible to merge it with the weekly time series for excess fatalities, which will enable the analysis in future sections.

Sort data so it is grouped on a per-country basis.

In [62]:
combined_daily_df = combined_daily_df.sort_values(by=['country', 'date'])

Create a field for the calendar week.

In [63]:
combined_daily_df['calendar_week'] = combined_daily_df[
    'date'].dt.isocalendar().week
combined_daily_df.head()
Out[63]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... extreme_poverty cardiovasc_death_rate diabetes_prevalence female_smokers male_smokers handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index calendar_week
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 1
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 1
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 1
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 1
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN 1

5 rows × 86 columns

Representing Testing Units
In [64]:
combined_daily_df['tests_units'].unique()
Out[64]:
array([nan, 'tests performed', 'units unclear', 'people tested',
       'samples tested', 'people tested (incl. non-PCR)',
       'tests performed (incl. non-PCR)'], dtype=object)

tests_units is a categorical variable and it does have an impact on interpreting the numbers of tests carried out. A PCR test detects the presence of the virus in the body (i.e., whether someone is currently infected) but other tests can be used (e.g, an antibody test, which could detect if someone was previously infected and produced antibodies) [14]. The following shows how test_units can be encoded as a categorical variable and also gives a note on interpreting each category:

  • nan, units unclear, units unclear (incl. non-PCR) = 0. Hard to draw firm conclusions from this.
  • tests performed = 1.
  • tests performed (incl. non-PCR) = 2.
  • samples tested = 3. Multiple samples could be collected from the same person, causing the number to be inflated.
  • people tested = 4. Number of individuals tested, i.e. tests are not double counted even if they are on the same person. This implies the number of tests is reliable.
  • people tested (incl. non-PCR) = 5. Number of individuals tested, i.e. tests are not double counted even if they are on the same person. This implies the number of tests is reliable but it will include previous and current infections.

Encoding like this allows this feature to be included in the weekly_df.

In [65]:
combined_daily_df.loc[combined_daily_df['tests_units'].isnull(),
                      'tests_units'] = 0
combined_daily_df.replace(to_replace=['units unclear',
                                      'units unclear (incl. non-PCR)',
                                      'tests performed',
                                      'tests performed (incl. non-PCR)',
                                      'samples tested',
                                      'people tested',
                                      'people tested (incl. non-PCR)'],
                          value=[0, 0, 1, 2, 3, 4, 5],
                          inplace=True)

Now aggregate data from the daily time series into a weekly time series.

In [66]:
weekly_df = combined_daily_df.groupby(
    ['country',
     'calendar_week']).agg({'C1_School closing': 'mean',
                            'C1_Flag': 'mean',
                            'C2_Workplace closing': 'mean',
                            'C2_Flag': 'mean',
                            'C3_Cancel public events': 'mean',
                            'C3_Flag': 'mean',
                            'C4_Restrictions on gatherings': 'mean',
                            'C4_Flag': 'mean',
                            'C5_Close public transport': 'mean',
                            'C5_Flag': 'mean',
                            'C6_Stay at home requirements': 'mean',
                            'C6_Flag': 'mean',
                            'C7_Restrictions on internal movement': 'mean',
                            'C7_Flag': 'mean',
                            'C8_International travel controls': 'mean',
                            'E1_Income support': 'mean',
                            'E1_Flag': 'mean',
                            'E2_Debt/contract relief': 'mean',
                            'E3_Fiscal measures': 'mean',
                            'E4_International support': 'mean',
                            'H1_Public information campaigns': 'mean',
                            'H1_Flag': 'mean',
                            'H2_Testing policy': 'mean',
                            'H3_Contact tracing': 'mean',
                            'H4_Emergency investment in healthcare': 'mean',
                            'H5_Investment in vaccines': 'mean',
                            'H6_Facial Coverings': 'mean',
                            'H6_Flag': 'mean',
                            'total_cases': 'max',
                            'new_cases': 'sum',
                            'total_deaths': 'max',
                            'new_deaths': 'sum',
                            'StringencyIndex': 'mean',
                            'ContainmentHealthIndex': 'mean',
                            'EconomicSupportIndex': 'mean',
                            'GovernmentResponseIndex': 'mean',
                            'total_tests_per_thousand': 'max',
                            'new_tests_smoothed_per_thousand': 'sum',
                            'new_tests_per_thousand': 'sum',
                            'tests_units': 'min'})
weekly_df.reset_index(inplace=True)
# Round the values of indicators so they retain defined whole number values
weekly_df = weekly_df.round(0)
weekly_df.head()
Out[66]:
country calendar_week C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... total_deaths new_deaths StringencyIndex ContainmentHealthIndex EconomicSupportIndex GovernmentResponseIndex total_tests_per_thousand new_tests_smoothed_per_thousand new_tests_per_thousand tests_units
0 Afghanistan 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0
1 Afghanistan 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0
2 Afghanistan 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0
3 Afghanistan 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
4 Afghanistan 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0

5 rows × 42 columns

Calculate a WeekNumber where "Week 1" of the virus is defined as the first week when 35 fatalities due to COVID-19 were recorded. In section 3.3., a DayNumber consistent with this will be calculated for the daily time series. This is defined as the first day when 5 new fatalities were recorded (which is the same definition as is used by Our World in Data).

In [67]:
weekly_df['WeekNumber'] = 0
country_groups = weekly_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    index_labels = country_group[
        country_group['new_deaths'] >= 35].index.tolist()
    if len(index_labels) > 0:
        first_index_in_group = country_group.index.tolist()[0]
        last_index_in_group = country_group.index.tolist()[-1]
        # WeekNumber increasing after Week 0
        for i in range(index_labels[0], last_index_in_group+1):
            weekly_df.loc[i, 'WeekNumber'] = weekly_df.loc[i-1,
                                                           'WeekNumber'] + 1
        # WeekNumber decreasing before Week 0
        # index_labels[0]-1 is "Week 0" so don't change that one
        for i in range(index_labels[0]-2, first_index_in_group-1, -1):
            weekly_df.loc[i, 'WeekNumber'] = weekly_df.loc[i+1,
                                                           'WeekNumber'] - 1

weekly_df.head()
Out[67]:
country calendar_week C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... new_deaths StringencyIndex ContainmentHealthIndex EconomicSupportIndex GovernmentResponseIndex total_tests_per_thousand new_tests_smoothed_per_thousand new_tests_per_thousand tests_units WeekNumber
0 Afghanistan 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0 -16
1 Afghanistan 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0 -15
2 Afghanistan 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 NaN 0.0 0.0 0 -14
3 Afghanistan 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 -13
4 Afghanistan 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 -12

5 rows × 43 columns

3.1.2.2. Prepare Monthly Excess Deaths Time Series
In [68]:
economist_monthly_excess_df
Out[68]:
country month excess_deaths excess_deaths_per_100k excess_deaths_pct_change
0 Ecuador 1 -126.200000 -0.732579 -0.018509
1 Ecuador 2 8.800000 0.051083 0.001460
2 Ecuador 3 3430.200000 19.911998 0.528471
3 Ecuador 4 14571.700000 84.587387 2.376221
4 Ecuador 5 3862.200000 22.419718 0.633272
5 Ecuador 6 2911.700000 16.902152 0.485097
6 Ecuador 7 4540.200000 26.355446 0.731017
7 Ecuador 8 3589.200000 20.834978 0.565157
8 Ecuador 9 1162.200000 6.746465 0.187761
230 Peru 1 488.500000 1.488224 0.049177
231 Peru 2 346.000000 1.054095 0.036680
232 Peru 3 -34.666667 -0.105613 -0.003370
233 Peru 4 4123.333333 12.561810 0.428591
234 Peru 5 16409.333333 49.991331 1.622331
235 Peru 6 17280.000000 52.643832 1.628038
236 Peru 7 18339.000000 55.870095 1.654547
237 Peru 8 17302.333333 52.711871 1.582338
238 Peru 9 6369.000000 19.403274 0.593680
239 Peru 10 2253.000000 6.863805 0.204039
240 Russia 1 -1036.166667 -0.706083 -0.006276
241 Russia 2 -41.833333 -0.028507 -0.000292
242 Russia 3 -5149.800000 -3.509267 -0.032616
243 Russia 4 4207.400000 2.867080 0.028687
244 Russia 5 21306.600000 14.519117 0.140538
245 Russia 6 19293.400000 13.147247 0.134482
246 Russia 7 38550.600000 26.269827 0.269720
247 Russia 8 14588.800000 9.941356 0.102311
248 Russia 9 33582.400000 22.884308 0.244886

Peru has 10 months of data, but the others have 9. Drop month 10, so that all countries from this source have the same amount of data available.

In [69]:
economist_monthly_excess_df.drop(
    economist_monthly_excess_df.loc[
        economist_monthly_excess_df['month'] == 10].index, inplace=True)

Create a monthly date range.

In [70]:
# Create the end_date field - values will be filled in in the next step
economist_monthly_excess_df['end_date'] = pd.to_datetime('2020-01-01',
                                                         format='%Y-%m-%d')
# dates for month_ends
month_ends = pd.date_range(start='2019-12-01',
                           freq='M',
                           periods=economist_monthly_excess_df[
                               'month'].max()+1)
In [71]:
# Set the values for end_date to the month_ends
country_groups = economist_monthly_excess_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    economist_monthly_excess_df.loc[
        economist_monthly_excess_df['country'] == c,
        'end_date'] = month_ends[1:]

Convert monthly time series to weekly time series.

In [72]:
for i, c in enumerate(list(economist_monthly_excess_df['country'].unique())):
    # country_monthly_excess_df holds data for one country
    country_monthly_excess_df = economist_monthly_excess_df[
        economist_monthly_excess_df['country'] == c].copy()
    # Insert a row to hold a "start date" - this is month_ends[0], which is
    # the month end for the month immediately to the start of the series
    country_monthly_excess_df.loc[-1] = [c, 0, 0, 0, 0, month_ends[0]]
    # Increase the indices by 1, because we have inserted a row
    country_monthly_excess_df.index = country_monthly_excess_df.index + 1
    country_monthly_excess_df = country_monthly_excess_df.sort_index()
    # Change the index to be end_date - this is the dates from month_ends
    country_monthly_excess_df.set_index(
        keys=country_monthly_excess_df['end_date'], inplace=True)
    # Now convert to a weekly series and impute gaps in the data
    country_monthly_excess_df = country_monthly_excess_df.asfreq(
        freq='W',
        method='bfill')
    # Set 'dates' to the values of index and drop the old index
    country_monthly_excess_df['dates'] = list(
        country_monthly_excess_df.index.values)
    country_monthly_excess_df.reset_index(drop=True, inplace=True)
    # Insert calendar week
    country_monthly_excess_df['calendar_week'] = country_monthly_excess_df[
        'dates'].dt.isocalendar().week
    # Divide monthly totals by number of weeks - assume uniformly distributed
    month_groups = country_monthly_excess_df.groupby(['month'])
    for feature in ['excess_deaths', 'excess_deaths_per_100k',
                    'excess_deaths_pct_change']:
        for m in list(month_groups.groups.keys()):
            month = month_groups.get_group(m)
            country_monthly_excess_df.loc[country_monthly_excess_df[
                'month'] == m, feature] = month[feature]/month.shape[0]

    # Append country_monthly_excess_df for each country together.
    # This builds a weekly df for all countries in economist_monthly_excess_df
    if i == 0:
        monthly_excess_df = country_monthly_excess_df
    else:
        monthly_excess_df = monthly_excess_df.append(country_monthly_excess_df)

# Drop some features which are no longer useful
monthly_excess_df.drop(columns=['month', 'end_date', 'dates'], inplace=True)
In [73]:
monthly_excess_df.head()
Out[73]:
country excess_deaths excess_deaths_per_100k excess_deaths_pct_change calendar_week
0 Ecuador -31.55 -0.183145 -0.004627 1
1 Ecuador -31.55 -0.183145 -0.004627 2
2 Ecuador -31.55 -0.183145 -0.004627 3
3 Ecuador -31.55 -0.183145 -0.004627 4
4 Ecuador 2.20 0.012771 0.000365 5

Since monthly_excess_df is now a weekly series, we can append it to the exisiting weekly series for excess deaths, economist_excess_df.

In [74]:
economist_excess_df = economist_excess_df.append(monthly_excess_df)
economist_excess_df.tail()
Out[74]:
country excess_deaths excess_deaths_per_100k excess_deaths_pct_change calendar_week
34 Russia 2917.76 1.988271 0.020462 35
35 Russia 8395.60 5.721077 0.061222 36
36 Russia 8395.60 5.721077 0.061222 37
37 Russia 8395.60 5.721077 0.061222 38
38 Russia 8395.60 5.721077 0.061222 39
3.1.2.3. Merge Excess Fatalities Data

Excess deaths is a measure of the additional deaths taking place during the pandemic compared to the number of deaths expected (based on historical data) over the same time period due to all causes.

In [75]:
weekly_df.rename(columns={'Calendar_Week': 'calendar_week'}, inplace=True)
weekly_excess_deaths_df = weekly_df.merge(economist_excess_df,
                                          how='right',
                                          on=['country', 'calendar_week'])
weekly_excess_deaths_df.head()
Out[75]:
country calendar_week C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... EconomicSupportIndex GovernmentResponseIndex total_tests_per_thousand new_tests_smoothed_per_thousand new_tests_per_thousand tests_units WeekNumber excess_deaths excess_deaths_per_100k excess_deaths_pct_change
0 Austria 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 NaN 0.0 0.0 0.0 -11.0 -129.715078 -1.457047 -0.074518
1 Austria 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 NaN 0.0 0.0 0.0 -10.0 -79.987805 -0.898477 -0.044887
2 Austria 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 NaN 0.0 0.0 0.0 -9.0 52.648559 0.591384 0.030182
3 Austria 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 -8.0 62.103104 0.697584 0.036172
4 Austria 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 1.0 0.0 0.0 0.0 0.0 -7.0 167.648559 1.883142 0.094219

5 rows × 46 columns

In [76]:
weekly_excess_deaths_df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 908 entries, 0 to 907
Data columns (total 46 columns):
 #   Column                                 Non-Null Count  Dtype  
---  ------                                 --------------  -----  
 0   country                                908 non-null    object 
 1   calendar_week                          908 non-null    int64  
 2   C1_School closing                      905 non-null    float64
 3   C1_Flag                                905 non-null    float64
 4   C2_Workplace closing                   905 non-null    float64
 5   C2_Flag                                905 non-null    float64
 6   C3_Cancel public events                905 non-null    float64
 7   C3_Flag                                905 non-null    float64
 8   C4_Restrictions on gatherings          905 non-null    float64
 9   C4_Flag                                905 non-null    float64
 10  C5_Close public transport              905 non-null    float64
 11  C5_Flag                                905 non-null    float64
 12  C6_Stay at home requirements           905 non-null    float64
 13  C6_Flag                                905 non-null    float64
 14  C7_Restrictions on internal movement   905 non-null    float64
 15  C7_Flag                                905 non-null    float64
 16  C8_International travel controls       905 non-null    float64
 17  E1_Income support                      905 non-null    float64
 18  E1_Flag                                905 non-null    float64
 19  E2_Debt/contract relief                905 non-null    float64
 20  E3_Fiscal measures                     905 non-null    float64
 21  E4_International support               905 non-null    float64
 22  H1_Public information campaigns        905 non-null    float64
 23  H1_Flag                                905 non-null    float64
 24  H2_Testing policy                      905 non-null    float64
 25  H3_Contact tracing                     905 non-null    float64
 26  H4_Emergency investment in healthcare  905 non-null    float64
 27  H5_Investment in vaccines              905 non-null    float64
 28  H6_Facial Coverings                    905 non-null    float64
 29  H6_Flag                                905 non-null    float64
 30  total_cases                            905 non-null    float64
 31  new_cases                              905 non-null    float64
 32  total_deaths                           905 non-null    float64
 33  new_deaths                             905 non-null    float64
 34  StringencyIndex                        905 non-null    float64
 35  ContainmentHealthIndex                 905 non-null    float64
 36  EconomicSupportIndex                   905 non-null    float64
 37  GovernmentResponseIndex                905 non-null    float64
 38  total_tests_per_thousand               846 non-null    float64
 39  new_tests_smoothed_per_thousand        905 non-null    float64
 40  new_tests_per_thousand                 905 non-null    float64
 41  tests_units                            905 non-null    float64
 42  WeekNumber                             905 non-null    float64
 43  excess_deaths                          908 non-null    float64
 44  excess_deaths_per_100k                 908 non-null    float64
 45  excess_deaths_pct_change               908 non-null    float64
dtypes: float64(44), int64(1), object(1)
memory usage: 333.4+ KB

3.3. Feature Engineering

In many countries, Saturdays and Sundays are not full working days, and as a result deaths (from any cause) that occur on a Saturday or Sunday may not be formally registered until the start of the working week on Monday. This can lead to a 7-day periodicity in reported COVID-19 fatalities. For this reason, it is useful to look at a 7-day rolling average of both the number of cases and number of fatalities.

In addition, the day by day change in the 7-day rolling average is also a useful measure for modelling (see section 6).

Therefore, calculate the 7-day rolling average and change in the 7-day rolling average for both the number of confirmed cases and fatalities (7DANewCases, 7DADeltaNewCases, 7DANewFatalities, 7DADeltaNewFatalities).

In [77]:
combined_daily_df['7DANewCases'] = 0
combined_daily_df['7DADeltaNewCases'] = 0

# 7 day rolling average of new confirmed cases
country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    # Change in confirmed cases
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          '7DANewCases'] = (country_group['new_cases'].
                                            rolling(7, min_periods=1).mean())
    combined_daily_df.loc[combined_daily_df['7DANewCases'].isnull(),
                          '7DANewCases'] = 0

country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    # Change in confirmed cases
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          '7DADeltaNewCases'] = country_group['7DANewCases'
                                                              ].diff()
    combined_daily_df.loc[combined_daily_df['7DADeltaNewCases'].isnull(),
                          '7DADeltaNewCases'] = 0

Next perform calculations on the number of fatalities.

In [78]:
combined_daily_df['7DANewFatalities'] = 0
combined_daily_df['7DADeltaNewFatalities'] = 0

# 7 day rolling average of new confirmed cases
country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    # Change in fatalities
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          '7DANewFatalities'] = (
        country_group['new_deaths'].rolling(7, min_periods=1).mean())
    combined_daily_df.loc[combined_daily_df['7DANewFatalities'].isnull(),
                          '7DANewFatalities'] = 0

country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    # Change in fatalities
    combined_daily_df.loc[(combined_daily_df['country'] == c),
                          '7DADeltaNewFatalities'] = country_group[
        '7DANewFatalities'].diff()
    combined_daily_df.loc[combined_daily_df['7DADeltaNewFatalities'].isnull(),
                          '7DADeltaNewFatalities'] = 0

For comparisons between different countries, identify when "Day 1" of the virus is for each location. This is defined as the first day when 5 new fatalities were recorded (which is the same as is used by Our World in Data).

In [79]:
combined_daily_df['DayNumber'] = 0
country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    index_labels = country_group[country_group['new_deaths']
                                 >= 5].index.tolist()
    if len(index_labels) > 0:
        first_index_in_group = country_group.index.tolist()[0]
        last_index_in_group = country_group.index.tolist()[-1]
        # DayNumber increasing after Day 0
        for i in range(index_labels[0], last_index_in_group+1):
            combined_daily_df.loc[i, 'DayNumber'] = combined_daily_df.loc[
                i-1, 'DayNumber'] + 1
        # DayNumber decreasing before Day 0
        # index_labels[0]-1 is "Day 0" so don't change that one
        for i in range(index_labels[0]-2, first_index_in_group-1, -1):
            combined_daily_df.loc[i, 'DayNumber'] = combined_daily_df.loc[
                i+1, 'DayNumber'] - 1
In [80]:
combined_daily_df.head()
Out[80]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... handwashing_facilities hospital_beds_per_thousand life_expectancy human_development_index calendar_week 7DANewCases 7DADeltaNewCases 7DANewFatalities 7DADeltaNewFatalities DayNumber
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN 1 0.0 0.0 0.0 0.0 -105
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN 1 0.0 0.0 0.0 0.0 -104
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN 1 0.0 0.0 0.0 0.0 -103
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN 1 0.0 0.0 0.0 0.0 -102
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN NaN 1 0.0 0.0 0.0 0.0 -101

5 rows × 91 columns

Finally, there are two dataframes ready for use:

  • combined_daily_df: The daily time series including the government measures along with case, mortality and testing data
  • weekly_excess_deaths_df: The weekly time series derived from the daily time series above and merged with the excess fatalities data

4. Data Exploration and Visualisation

4.1. Comparing the Impact on Different Countries

4.1.1. COVID-19 Cases and Fatalities per Million of Population

This section compares the numbers of confirmed cases and fatalities across different countries. The numbers per million of population are used rather than absolute numbers to allow comparison between countries with different populations.

Graph 1 below compares the case numbers for the 40 countries with the highest confirmed cases per million.

In [81]:
# Use totals one week ago because data is sometimes corrected retrospectively
one_week_ago = combined_daily_df['date'].max() - timedelta(7)
total_cases_df = combined_daily_df[
    combined_daily_df['date'] == one_week_ago].sort_values(
    by='total_cases_per_million', ascending=False).head(40)
In [82]:
# Label to hold references to graphs throughout the notebook
graphnum = 1

plt.figure(figsize=(18, 9))
plt.bar(total_cases_df['country'], total_cases_df['total_cases_per_million'])
plt.title("Graph {} - Total Cases per Million "
          "Across Different Countries (Top 40)".format(graphnum))
plt.ylabel("Confirmed cases per million")
plt.xticks(rotation='vertical')
plt.show()

graphnum += 1

Some countries (for example, Andorra) appear as particularly high in this graph partly because they have a small population. This is not true of all the countries in the top 40 though - the USA, Brazil, European countries and others in the top 40 have large populations.

Now plot fatalities per million, maintaining the same sort order as in the graph above.

In [83]:
plt.figure(figsize=(18, 9))
plt.bar(total_cases_df['country'], total_cases_df['total_deaths_per_million'])
plt.title("Graph {} - Total Fatalities per Million "
          "Across Different Countries".format(graphnum))
plt.ylabel("Fatalities per million")
plt.xticks(rotation='vertical')
plt.show()

graphnum += 1

The distribution of cases per million and fatalities per million across countries is very different. This shows the the fatality rate (i.e. fatalities per number of cases) differs a lot between countries.

Possible reasons are:

  • Different levels of access to good healthcare.
  • Different demographics (e.g. age distribution of population, risk factors such as smoking).
  • Different levels of testing, leading to undiagnosed cases of COVID-19.
  • Different levels of accuracy in recording fatalities due to COVID-19.

The last two points mean that the cases and fatalities data is probably inaccurate for some countries.

4.1.2. Comparing Excess Deaths

It was noted above that the numbers of COVID-19 cases and fatalities reported by countries may not always be accurate. Even a country with a comprehensive testing system and well organised healthcare is likely to make some mistakes, especially in a crisis situation.

An alternative way to measure fatalities is excess deaths. This is defined as the difference between the death rate from all causes during the COVID-19 pandemic and the average death rate in the same time period over recent years.

This measure is useful because it is unaffected even if a country does not correctly record all true COVID-19 deaths. It also includes deaths that could be indirectly attributed to COVID-19, for example when patients are unable to access healthcare for a non-COVID issue due to overload on the health services.

It is potentially a better way to compare fatalities between countries during the crisis. More information can be found in [8].

The disadvantage of the excess deaths data is that it is only available for a small subset of countries, specifically:

In [84]:
print("Countries with excess death data:")
countries = weekly_excess_deaths_df.groupby(['country'])
list(countries.groups.keys())
Countries with excess death data:
Out[84]:
['Austria',
 'Belgium',
 'Brazil',
 'Chile',
 'Denmark',
 'Ecuador',
 'France',
 'Germany',
 'Italy',
 'Mexico',
 'Netherlands',
 'Norway',
 'Peru',
 'Portugal',
 'Russia',
 'South Africa',
 'Spain',
 'Sweden',
 'Switzerland',
 'United Kingdom',
 'United States']

The following sections will explore the excess deaths data.

4.1.2.1. Time Variation of Excess Deaths

First look at the way excess deaths varies over time for each of the countries with avaliable data. Graph 3 shows the absolute numbers, Graph 4 shows the excess deaths per 100000 of population, which provides the best comparison.

In [85]:
countries = weekly_excess_deaths_df.groupby(['country'])

# Set styles and colours using ColorBrewer palette
STYLES = ['solid', 'dashed']
NUM_STYLES = len(STYLES)
clrs = sns.color_palette('Set1')
NUM_COLOURS = len(clrs)

count = 0
plt.figure(figsize=(18, 9))
for c in list(countries.groups.keys()):
    country = countries.get_group(c)
    country_data = country[country['WeekNumber'] > -5]
    plt.plot(country_data['WeekNumber'],
             country_data['excess_deaths'],
             label=c,
             color=clrs[count % NUM_COLOURS],
             linestyle=STYLES[count % NUM_STYLES])
    count += 1
plt.xlabel('WeekNumber')
plt.ylabel('Excess Deaths')
plt.xticks(rotation='vertical')
plt.legend()
plt.grid()
plt.title("Graph {} - Graph to Compare Excess Deaths "
          "Across Countries".format(graphnum))
plt.show()
graphnum += 1

count = 0
plt.figure(figsize=(18, 9))
for c in list(countries.groups.keys()):
    country = countries.get_group(c)
    country_data = country[country['WeekNumber'] > -5]
    plt.plot(country_data['WeekNumber'],
             country_data['excess_deaths_per_100k'],
             label=c,
             color=clrs[count % NUM_COLOURS],
             linestyle=STYLES[count % NUM_STYLES])
    count += 1
plt.xlabel('WeekNumber')
plt.ylabel('Excess Deaths per 100k')
plt.xticks(rotation='vertical')
plt.legend()
plt.grid()
plt.title("Graph {} - Graph to Compare Excess Deaths per 100k "
          "of Population Across Countries".format(graphnum))
plt.show()
graphnum += 1

Looking at Graph 4 showing excess deaths per 100K:

  • The size of the first peak varies significantly, from less than 5 per 100k for Austria and Norway, to almost 25 per 100k for Spain. This shows that the impact of the virus differed significantly from country to country.

  • The time elapsed between recording the first five COVID-19 deaths and the peak excess deaths per 100k also varies significantly. For most countries the peak comes at around 3 or 4 weeks. For Chile, Peru, and South Africa the first peak comes at about 10 weeks.

  • For several countries, excess deaths peaked more than once. In particular, several new peaks appeared after week 30. Generally, the first peak was worse than later ones. This is likely to be because countries were much more prepared when subsequent peaks came.

4.1.2.2. Total Excess Deaths

Compare the total excess deaths for countries. Note that this is a snapshot in time - the virus arrived in different countries at different times and the crisis still continues, so this is a dynamic situation and these numbers will change before the COVID-19 crisis is over. To account for this difference, use the same number of weeks of data for each country, even if more is available.

In [86]:
# Find the latest week of data that all countries have
countries = weekly_excess_deaths_df.groupby(['country'])
country_list = (list(countries.groups.keys()))
latest_weeks = []
for c in country_list:
    country = countries.get_group(c)
    latest_weeks.append(country['WeekNumber'].max())
latest_week = min(latest_weeks)
In [87]:
countries = weekly_excess_deaths_df.groupby(['country'])
country_list = (list(countries.groups.keys()))

total_excess_deaths_per_100k = []
for c in country_list:
    country = countries.get_group(c)
    country_data = country[(country['WeekNumber'] > 0)
                           & (country['WeekNumber'] <= latest_week)]
    total_excess_deaths_per_100k.append(
        country_data['excess_deaths_per_100k'].sum())

d = {'Country': country_list,
     'total_excess_deaths_per_100k': total_excess_deaths_per_100k}
total_excess_deaths_per_100k_df = pd.DataFrame(data=d)
total_excess_deaths_per_100k_df.sort_values(
    by=['total_excess_deaths_per_100k'], axis=0, ascending=False, inplace=True)

plt.figure(figsize=(18, 9))
plt.bar(x=total_excess_deaths_per_100k_df['Country'],
        height=total_excess_deaths_per_100k_df['total_excess_deaths_per_100k'])
plt.xlabel("Country")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.title("Graph {} - Graph to Compare Total Excess Deaths "
          "per 100k of Population Across Countries".format(graphnum))
plt.show()
graphnum += 1

Of the countries for which data exists, Peru, Ecuador and Mexico have the highest numbers of excess deaths. There is a large group with a middling level of excess deaths (50-100 per 100k), and a smaller group (Switzerland, Austria, Germany, Denmark, Norway) with relatively low excess deaths (<50 per 100k).

4.2. Relating the Impact of the Virus to Government Measures over Time

During the pandemic, different governments took various measures to inhibit the virus. The aim of this section is to explore how government measures varied over time, and how this might relate to the numbers of cases and fatalities. It's beyond the scope of this project to analyse the response of every country. Instead, this section focusses on a few example countries to demonstrate some different government responses with different results.

Two graphs will be shown for each country.

The first graph shows the 7 day rolling average of new cases and new fatalities. Absolute numbers are used (rather than per head of population) because this section focusses on the relationship between government measures and the cases and fatalities in an individual country, rather than comparisons between countries. The aim of government responses around the world has been to not only minimise total cases and (especially) fatalities, but also to broaden and flatten the peak of cases so that local health systems could cope with the influx of patients.

The second graph for each country shows the variation in government responses. This is done using the data from [4] which tracks a set of government measures on a day by day basis. These rank the strength of the government measures on a numerical scale, typically from 0 to 3, and indicates whether the measures are enforced nationally or locally. The authors of [4] use these individual measures to calculate four composite indices on a scale of 1 to 100. It is these four composite indices which are plotted in the graphs below.

The indices are fully defined in [4]. For convenience, the following summary is copied from the same source:

The data from the 17 indicators is aggregated into a set of four common indices, reporting a number between 1 and 100 to reflect the level of government action on the topics in question:

  • an overall government response index (which records how the response of governments has varied over all indicators in the database, becoming stronger or weaker over the course of the outbreak);
  • a containment and health index (which combines ‘lockdown’ restrictions and closures with measures such as testing policy and contact tracing, short term investment in healthcare, as well investments in vaccine)
  • an economic support index (which records measures such as income support and debt relief)
  • as well as the original stringency index (which records the strictness of ‘lockdown style’ policies that primarily restrict people’s behaviour).

Note that these indices simply record the number and strictness of government policies, and should not be interpreted as ‘scoring’ the appropriateness or effectiveness of a country’s response. A higher position in an index does not necessarily mean that a country's response is ‘better’ than others lower on the index.

In [88]:
def graph_daily_measures_and_results(loc):
    """ Plot graphs of new cases, new fatalities and gov measures vs time

    Plotting real ground truth data from the cleaned data sources.

    param loc: Location (country) to plot data for
    """
    global graphnum
    country_groups = combined_daily_df.groupby(['country'])
    grp = country_groups.get_group(loc)
    data = grp[grp['DayNumber'] > -5]

    fig = plt.figure(figsize=(18, 5))
    ax1 = fig.add_subplot(111)
    ax1.plot(data['DayNumber'], data['7DANewCases'], color='blue')
    ax1.set_ylabel('New Cases', color='blue')
    ax2 = ax1.twinx()
    ax2.plot(data['DayNumber'], data['7DANewFatalities'],
             color='red')
    ax2.set_ylabel("New Fatalities", color='red')
    ax2.set_xlabel("DayNumber")

    plt.xticks(rotation='vertical')
    plt.title("Graph {0} - 7 Day Rolling Average New Fatalities "
              "and New Confirmed Cases in {1}".format(graphnum, loc))
    plt.show()
    graphnum += 1

    # Composite indices
    plt.figure(figsize=(16, 5))
    plt.plot(data['DayNumber'],
             data['StringencyIndex'],
             label="Stringency Index")
    plt.plot(data['DayNumber'],
             data['ContainmentHealthIndex'],
             label="Containment and Health Index")
    plt.plot(data['DayNumber'],
             data['EconomicSupportIndex'],
             label="Economic Support Index")
    plt.plot(data['DayNumber'],
             data['GovernmentResponseIndex'],
             label="Government Response Index")
    plt.xlabel("DayNumber")
    plt.ylabel("Composite Index")
    plt.legend()
    plt.title("Graph {0} - Composite Indices Calculated "
              "From Government Measures in {1}".format(graphnum, loc))
    plt.show()
    graphnum += 1

4.2.1. United Kingdom

In [89]:
graph_daily_measures_and_results('United Kingdom')

The UK implemented a lockdown more slowly than some other European countries (see section 4.3.) and the level of excess deaths is high compared to other European countries. There is a clear double peak in cases and fatalities. The stringency index varied in the range 60 to 80. Increasing the stringency index during the early stages of the first peak seems to lead to a fall in cases and fatalities. It's not easy to interpret in detail how the government measures affected the second peak, but a couple of observations can be made:

  • The fatality rate in the second peak is lower than in the first peak
  • More cases were detected in the second peak (probably due to increased testing rates (see section 4.4.)

4.2.2. Germany

In [90]:
graph_daily_measures_and_results('Germany')

Germany has so far suffered fewer cases and fewer fatalities than many of its European neighbours. The stringency index varied more than in the UK, starting at a higher level early in the first peak, and dropping to a lower minimum level. As in the UK, the number of cases detected in the second peak is higher than in the first peak, also probably due to increased testing. The number of fatalities in both peaks is similar.

4.2.3. Sweden

In [91]:
graph_daily_measures_and_results('Sweden')

Sweden is interesting because it has maintained a low stringency index compared to other European countries. Like Germany and the UK, there is a double peak in cases and fatalities. The peak numbers of cases and fatalities are low. However, Sweden is a relatively sparesly populated country, and (as seen in section 4.1.1) both total fatalities per million and cases per million are relatively high, and excess deaths is around the lower-middle part of the range.

4.2.4. Japan

In [92]:
graph_daily_measures_and_results('Japan')

Japan is remarkable because, with the exception of economic support, it adopted relatively light control measures but still had low numbers of cases and fatalities per million. Three peaks are visible but these are all with low numbers. This demonstrates that government measures alone cannot explain the variation in the numbers of cases and fatalities.

4.2.5. Australia

In [93]:
graph_daily_measures_and_results('Australia')

Australia also went through two peaks but had relatively few fatalities and cases. Australia implemented strict controls (high stringency index) during both peaks and this probably contributed to the low numbers of cases and deaths. Another factor could be that Australia is an (admittedly giant) island with a fairly low population density; this may have helped their control measures to work well.

4.2.6. USA

In [94]:
graph_daily_measures_and_results('United States')

The United States had a high level of excess deaths during the pandemic. They were one of the slowest countries to implement a lockdown (see section 4.3.). Stringency index varied between just over 60 and just over 70 for the majority of the time, but has recently risen to its maximum value just below 80. There are two clear peaks, but cases and fatalities between them never really fell to a low level, so the crisis has been more continuous than in some other countries.

The size of the country must also be considered a factor - many states are big enough in size and population to be countries in their own right.

4.2.7. India

In [95]:
graph_daily_measures_and_results('India')

In contrast to the countries analysed above, India is a developing nation, and that means it faces additional challenges during the pandemic. It also means that the data on infection and fatality rates may not be as reliable as for some countries, and data on excess deaths is not available. Unlike some countries, cases and fatalities in India rose to a broad single peak. The stringency index was initially very high but has generally fallen throughout the pandemic. Cases and fatalities have been falling over recent months, although the rate of decrease has slowed in recent weeks.

4.2.8. Conclusions from Analysing the Impact of the Virus in Different Countries

Comparing the patterns in the numbers of cases and fatalities and government responses between countries shows several features in common:

  • Most countries experienced an initial peak in cases and fatalities followed by one or more subsequent peaks.
  • The number of fatalities in second and subsequent peaks was smaller than in the first. This matches the findings from Graph 4 and is probably because countries were more prepared for later waves of the virus and because better treatments became available.
  • Most countries implemented a "lockdown" early in the pandemic, where the stringency index rose to a high level.
  • More cases are being detected later in the pandemic, probably due to ramping up testing.

There are also some notable differences between countries:

  • Sweden and Japan did not implement a strict lockdown and they are unusual in this respect. They both had different results from this, but it did not simply translate into an excessive number of fatalities and cases.
  • Even with a strict lockdown, the results can be very different. Graph 5 shows that the UK and Germany experienced very different levels of excess deaths, but they both implemented lockdown measures.
  • The virus arrived in different countries at different times, so they may be at different "stages" in their evolution of the virus.

The first peak in many countries receded after lockdown measures were introduced by governments. Although this doesn't prove that the measures suppress the virus, it is consistent with that interpretation. Our understanding of the virus is that it spreads when people are close to one another, so it makes sense that government measures preventing close contact do slow the spread of the virus.

The relationship between the measures and the spread of the virus is not simple, though. The graphs above demonstrate this: even countries which implemented similar levels of stringency had very different outcomes. It's likely that other factors such as economics, culture, geography, demographics and population compliance also affect the spread of the virus.

Most governments implemented a set of many measures. It is difficult to extract which particular measures, or combinations of measures, were most important in preventing the spread of the virus. Section 5 and 6 use machine learning methods to explore this further.

4.3. Analysing the Speed of Government Responses

It's possible that it's not only the type and level of government responses which are important in controlling the spread of the virus but also the time at which they were implemented. This section will look for a relationship between the time taken to implement lockdown and the total number of excess deaths. Excess deaths is chosen as the measure rather than deaths or cases per million because it provides a better way to compare between contries (see section 4.1.2.)

First plot the variation of one of the composite measures (Stringency Index) over time for all the countries for which we have excess deaths data.

In [96]:
countries = weekly_excess_deaths_df.groupby(['country'])

# Set styles and colours using ColorBrewer palette
STYLES = ['solid', 'dashed']
NUM_STYLES = len(STYLES)
clrs = sns.color_palette('Set1')
NUM_COLOURS = len(clrs)

count = 0
plt.figure(figsize=(18, 9))
for c in list(countries.groups.keys()):
    country = countries.get_group(c)
    country_data = country[country['WeekNumber'] > -5]
    plt.plot(country_data['WeekNumber'],
             country_data['StringencyIndex'],
             label=c,
             color=clrs[count % NUM_COLOURS],
             linestyle=STYLES[count % NUM_STYLES])
    count += 1
plt.xlabel("WeekNumber")
plt.ylabel("Stringency Index")
plt.xticks(rotation='vertical')
plt.legend()
plt.grid()
plt.title("Graph {} - Graph to Compare Week by Week Variation "
          "of Stringency Index Across Countries".format(graphnum))
plt.show()
graphnum += 1

Although there are variations in the nature of government reposnses, most countries seemed to raise stringency to a value above 70. (Sweden is a notable exception.) However, the exact time when each country raised stringency to this level, relative to the time of the first confirmed fatalities, varied. We will arbitrarily define the time of lockdown as the time when stringency index reached 70 or more. Now we can look at the relationship between the time elapsed between DayNumber 1 (see section 3.3.) and the time of lockdown, and the total number of excess deaths.

In [97]:
time_to_lockdown = []
countries = combined_daily_df.groupby(['country'])
country_list = list(total_excess_deaths_per_100k_df['Country'].unique())

for c in country_list:
    country = countries.get_group(c)
    if country[country['StringencyIndex'] >= 70].shape[0] > 0:
        lockdown_day = country[
            country['StringencyIndex'] >= 70]['DayNumber'].iloc[0]
        time_to_lockdown.append(lockdown_day)
    # If StringencyIndex never reaches 70, use the day of max StringencyIndex
    else:
        lockdown_day = country[country['StringencyIndex'] == country[
            'StringencyIndex'].max()]['DayNumber'].iloc[0]
        time_to_lockdown.append(lockdown_day)

total_excess_deaths_per_100k_df['time_to_lockdown'] = time_to_lockdown
In [98]:
plt.figure(figsize=(18, 9))

x = total_excess_deaths_per_100k_df['time_to_lockdown']
y = total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

for i, txt in enumerate(total_excess_deaths_per_100k_df['Country'].to_list()):
    plt.annotate(txt, (x.iloc[i], y.iloc[i]))

plt.xlabel("Time to lockdown (days)")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.title("Graph {} - Graph to Show the Relationshp Between "
          "Time Taken to Implement Lockdown "
          "and Total Excess Deaths per 100k of Population".format(graphnum))
plt.show()
graphnum += 1

There isn't any clear relationship between the time to lockdown and the number of excess deaths. To try and eliminate economic, cultural and other factors from the comparison, it's also worth comparing the European countries alone:

In [99]:
europe = [
    'Austria',
    'Denmark',
    'Norway',
    'Portugal',
    'Belgium',
    'Italy',
    'Netherlands',
    'Switzerland',
    'Germany',
    'France',
    'United Kingdom',
    'Spain',
    'Sweden']

plt.figure(figsize=(18, 9))

europe_total_excess_deaths_per_100k_df = total_excess_deaths_per_100k_df[
    total_excess_deaths_per_100k_df['Country'].isin(europe)]

x = europe_total_excess_deaths_per_100k_df['time_to_lockdown']
y = europe_total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

for i, txt in enumerate(europe_total_excess_deaths_per_100k_df['Country'
                                                               ].to_list()):
    plt.annotate(txt, (x.iloc[i], y.iloc[i]))

plt.xlabel("Time to lockdown (days)")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.title("Graph {} - Showing the Relationshp Between Time Taken "
          "to Implement Lockdown and Total Excess Deaths "
          "per 100k of Population (Europe)".format(graphnum))
plt.show()
graphnum += 1

There is some relationship between the number of excess deaths and the time to lockdown, but it is not a clear or strong one. The five countries with the lowest numbers of excess deaths locked down at different times (over a period of 12 days), and some countries that locked down at the same time ended up with very different levels of excess deaths (compare Norway and Portugal, or Germany and Italy).

Despite this, there is some relationship. Of the five countries with the lowest excess fatalities, three locked down before DayNumber 0, and any that locked down later than DayNumber 7 all had significantly higher levels of excess fatalities.

This complexity and lack of clarity also suggests that there are other factors that influence the total number of excess deaths; it is a complicated interaction.

4.4. Analysing the Effect of Testing

Knowing who has the virus (and could therefore spread it to others), and where the areas of greatest concentration are, could be used as the basis of a strategy like quarantine of infection, so it follows that the amount of testing carried out may have an indirect influence on the spread of the virus. This section will examine this relationship.

In [100]:
countries = weekly_excess_deaths_df.groupby(['country'])

# Set styles and colours using ColorBrewer palette
STYLES = ['solid', 'dashed']
NUM_STYLES = len(STYLES)
clrs = sns.color_palette('Set1')
NUM_COLOURS = len(clrs)

count = 0
plt.figure(figsize=(18, 9))
for c in list(countries.groups.keys()):
    country = countries.get_group(c)
    country_data = country[country['WeekNumber'] > -5]
    plt.plot(country_data['WeekNumber'],
             country_data['new_tests_smoothed_per_thousand'],
             label=c,
             color=clrs[count % NUM_COLOURS],
             linestyle=STYLES[count % NUM_STYLES])
    count += 1
plt.xlabel("WeekNumber")
plt.ylabel("Tests per 1000 of population")
plt.xticks(rotation='vertical')
plt.legend()
plt.grid()
plt.title("Graph {} - Graph to Compare Weekly Testing Rates "
          "Across Countries".format(graphnum))
plt.show()
graphnum += 1

Although all countries in the graph implemented some level of testing, and this generally increased over time, the amount of testing and the timing when it started varied between countries. Both the amount of testing and the timing of it can be compared to see if there is any relationship to the number of excess deaths.

4.4.1. The Effect of When Testing Starts

This section will examine the relationship between the time when a country begins its testing programme and the amount of excess deaths. Plot a graph showing the excess deaths against the week number where tesing began.

In [101]:
first_week_of_testing = []
countries = weekly_excess_deaths_df.groupby(['country'])
country_list = total_excess_deaths_per_100k_df['Country'].unique()
for c in country_list:
    country = countries.get_group(c)
    firstweek = country[(country['total_tests_per_thousand'] > 0)
                        | (country['new_tests_per_thousand'] > 0)][
        'WeekNumber'].min()
    first_week_of_testing.append(firstweek)

total_excess_deaths_per_100k_df[
    'first_week_of_testing'] = first_week_of_testing
In [102]:
plt.figure(figsize=(18, 9))

x = total_excess_deaths_per_100k_df['first_week_of_testing']
y = total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

for i, txt in enumerate(total_excess_deaths_per_100k_df['Country'].to_list()):
    plt.annotate(txt, (x.iloc[i], y.iloc[i]))

plt.xlabel("First week of testing (Week Number)")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.title("Graph {} - Graph to Show the Relationshp Between Time Taken "
          "to Start Testing and Total Excess Deaths per 100k of Population"
          .format(graphnum))
plt.show()
graphnum += 1

There is possibly some indication of a relationship here but not a very strong one. Next perform the same comparison but with only the European countries, to try and control for factors like economics and culture:

In [103]:
plt.figure(figsize=(18, 9))

europe_total_excess_deaths_per_100k_df = total_excess_deaths_per_100k_df[
    total_excess_deaths_per_100k_df['Country'].isin(europe)]

x = europe_total_excess_deaths_per_100k_df['first_week_of_testing']
y = europe_total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

for i, txt in enumerate(europe_total_excess_deaths_per_100k_df['Country'
                                                               ].to_list()):
    plt.annotate(txt, (x.iloc[i], y.iloc[i]))

plt.xlabel("First week of testing (Week Number)")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.title("Graph {} - Graph to Show the Relationshp Between Time Taken"
          " to Start Testing and Total Excess Deaths per 100k of Population"
          " in Europe".format(graphnum))
plt.show()
graphnum += 1

All the countries that had the lowest levels of excess deaths started testing before Week 0 which does suggest early testing can help minimise the impact of the virus. However, it is still not a clear relationship, as shown by comparing Portugal and Denmark, or France and the Netherlands.

4.4.2. The Effect of the Level of Testing

Next look at the relationship between total number of tests per thousand (cumulative), per week of the crisis, with the total number of excess deaths. Note that to allow comparison between countries, use only data up to WeekNumber 25, for which data for all countries in the excess deaths set is available. (This is the same approach as was applied to the data in section 4.1.2.2. above.)

In [104]:
mean_tests_per_thousand_per_week = []
modal_test_units = []
countries = weekly_excess_deaths_df.groupby(['country'])
country_list = total_excess_deaths_per_100k_df['Country'].unique()

for c in country_list:
    country = countries.get_group(c)
    # Data not available for all countries after latest week
    tests = country[country['WeekNumber'] <= latest_week][
        'total_tests_per_thousand'].max() / country['WeekNumber'].max()
    # If 'total_tests_per_thousand' is 0 check 'new_tests_per_thousand'
    # in case it is >0
    if tests == 0:
        # Data not available for all countries after latest week
        tests = country[country['WeekNumber'] <= latest_week][
            'new_tests_per_thousand'].sum() / country['WeekNumber'].max()
    test_units = country['tests_units'].mode()[0]
    mean_tests_per_thousand_per_week.append(tests)
    modal_test_units.append(test_units)
In [105]:
total_excess_deaths_per_100k_df['mean_tests_per_1000_per_week'
                                ] = mean_tests_per_thousand_per_week
total_excess_deaths_per_100k_df['tests_units'] = modal_test_units

plt.figure(figsize=(18, 9))

x = total_excess_deaths_per_100k_df['mean_tests_per_1000_per_week']
y = total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

point_colours = ['red', 'brown', 'green', 'orange', 'blue', 'purple']

for i, c in enumerate(total_excess_deaths_per_100k_df['Country'].to_list()):
    plt.annotate(c, (x.iloc[i], y.iloc[i]),
                 color=point_colours[int(total_excess_deaths_per_100k_df[
                     total_excess_deaths_per_100k_df['Country'] == c][
                     'tests_units'].values[0])])

plt.xlabel("Mean Tests per Thousand of Population per Week")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.text(10, 160, "Test Units:\n"
         "Red: Units not clear\n"
         "Brown: Tests conducted\n"
         "Green: Tests conducted (incl. non-PCR)\n"
         "Orange: Samples tested\n"
         "Blue: People tested\n"
         "Purple:People tested (incl. non-PCR)",
         bbox={'facecolor': 'grey', 'alpha': 0.5, 'pad': 10})
plt.title("Graph {} - Graph to Show the Relationshp Between "
          "Mean Tests per 1000 of Population per Week "
          "and Total Excess Deaths per 100k of Population".format(graphnum))
plt.show()
graphnum += 1

From this graph, it appears that there may be a relationship between the mean levels of testing and total excess deaths. Broadly, countries with a smaller amount of testing have higher excess deaths. This is not a strong relationship, though.

In addition, this may not be comparing like with like. For certain, different countries use different ways of measuring the number of tests administered (the graph above represents this by the colour of the country name).

In addition, it may be useful to compare countries that are more similar in other ways (e.g. economically) - the following graph compares testing data only for the European countries:

In [106]:
plt.figure(figsize=(18, 9))

europe_total_excess_deaths_per_100k_df = total_excess_deaths_per_100k_df[
    total_excess_deaths_per_100k_df['Country'].isin(europe)]

x = europe_total_excess_deaths_per_100k_df['mean_tests_per_1000_per_week']
y = europe_total_excess_deaths_per_100k_df['total_excess_deaths_per_100k']

plt.scatter(x, y)

point_colours = ['red', 'brown', 'green', 'orange', 'blue', 'purple']

for i, c in enumerate(europe_total_excess_deaths_per_100k_df['Country'
                                                             ].to_list()):
    plt.annotate(c, (x.iloc[i], y.iloc[i]),
                 color=point_colours[
                     int(europe_total_excess_deaths_per_100k_df[
                         europe_total_excess_deaths_per_100k_df[
                             'Country'] == c]['tests_units'].values[0])])

plt.xlabel("Mean Tests per Thousand of Population per Week")
plt.ylabel("Total Excess Deaths per 100k")
plt.xticks(rotation='vertical')
plt.grid()
plt.text(10, 80, "Test Units:\n"
         "Red: Units not clear\n"
         "Brown: Tests conducted\n"
         "Green: Tests conducted (incl. non-PCR)\n"
         "Orange: Samples tested\n"
         "Blue: People tested\n"
         "Purple:People tested (incl. non-PCR)",
         bbox={'facecolor': 'grey', 'alpha': 0.5, 'pad': 10})
plt.title("Graph {} - Graph to Show the Relationshp Between "
          "Mean Tests per 1000 of Population per Week "
          "and Total Excess Deaths per 100k of Population "
          "(Europe)".format(graphnum))
plt.show()
graphnum += 1

Looking at the European countries, it's not clear that there is any relationship between average testing rates and excess deaths.

4.5. Conclusion of the Data Exploration and Visualisation

This section explored several aspects of the data to look for patterns and inferences. Data about the numbers of cases, fatalities, and excess fatalities shows that the fatality rate of the virus varies widely between different countries. Comparing the government responses to the spread of the virus over time shows that government lockdowns often precede a fall in cases but that the relationship between cases, fatalities and government measures is not a simple one. The level of excess fatalities in a country does have some relationship to both the time when lockdown took place and the time when testing started, with respect to DayNumber 1 of the virus, but it's clear these are not the only factors that are important - other factors also influence this. The picture that is building up is of a complex set of interacting factors all of which influence the spread of the virus and the fatality rate. The next sections will use modelling techniques to attempt to disentangle and understand these factors.

5. Clustering Model Based on Government Measures and their Relationship to Excess Fatalities

5.1. Approach

In this section unsupervised learning is applied to the data relating excess deaths to the government measures. The aim is to infer which government measures have the largest influence on achieving lower rates of excess deaths.

The approach will be as follows:

  1. Identify a set of features to cluster (primarily, the government measures).
  2. Use principal component analysis to reduce the number of dimensions.
  3. Use K-means clustering on these components to create a model.
  4. Use Graph 5 in section 4.1.2.2. to identify a group of countries with high excess deaths and a group with low excess deaths.
  5. Find out whether the countries in either the high excess deaths or low excess deaths groups are over or under represented in particular clusters.
  6. Use this to infer which features seem to contribute to higher or lower levels of excess deaths.

This follows a similar pattern to one of the other Udacity projects in my GitHub repository [19].

Choose the government measures to use in the prediction. Excluding some features is a good idea to reduce the complexity of the model.

The measures: H4_Emergency investment in healthcare, H5_Investment in vaccines, E3_Fiscal measures and E4_International support are all expressed as one-off US dollar monetary amounts. This is very different from the ordinal and binary measures used in the other features so these will be excluded. This leaves the following government measures:

In [107]:
measures = [
    'C1_School closing',
    'C1_Flag',
    'C2_Workplace closing',
    'C2_Flag',
    'C3_Cancel public events',
    'C3_Flag',
    'C4_Restrictions on gatherings',
    'C4_Flag',
    'C5_Close public transport',
    'C5_Flag',
    'C6_Stay at home requirements',
    'C6_Flag',
    'C7_Restrictions on internal movement',
    'C7_Flag',
    'C8_International travel controls',
    'E1_Income support',
    'E1_Flag',
    'E2_Debt/contract relief',
    'H1_Public information campaigns',
    'H1_Flag',
    'H2_Testing policy',
    'H3_Contact tracing',
    'H6_Facial Coverings',
    'H6_Flag'
]

The analysis will focus on the measures implemented by the governments near the time of lockdown. To do this, find the mean level of each measure in the week before and three weeks after lockdown (defined as the day when stringency index reached 70 - see section 4.3.).

In [108]:
countries = combined_daily_df.groupby(['country'])
country_list = list(total_excess_deaths_per_100k_df['Country'].unique())

lockdown_measures = np.zeros((len(country_list), len(measures)))

for i, c in enumerate(country_list):
    country = countries.get_group(c)
    lockdown_day = total_excess_deaths_per_100k_df[
        total_excess_deaths_per_100k_df['Country'] == c]['time_to_lockdown'
                                                         ].values[0]
    lockdown_lower_limit = lockdown_day - 7
    lockdown_upper_limit = lockdown_day + 21
    lockdown_data_sample = country[(country['DayNumber']
                                    > lockdown_lower_limit)
                                   & (country['DayNumber']
                                      <= lockdown_upper_limit)]
    for j, m in enumerate(measures):
        # Account for mode() returning two values
        lockdown_measures[i][j] = lockdown_data_sample[m].mode()[0]
In [109]:
lockdown_measures_df = pd.DataFrame(data=lockdown_measures, columns=measures)
lockdown_measures_df.insert(loc=0, column='Country', value=country_list)
lockdown_measures_df
Out[109]:
Country C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag C5_Close public transport ... C8_International travel controls E1_Income support E1_Flag E2_Debt/contract relief H1_Public information campaigns H1_Flag H2_Testing policy H3_Contact tracing H6_Facial Coverings H6_Flag
0 Peru 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 4.0 1.0 1.0 2.0 2.0 1.0 1.0 1.0 0.0 0.0
1 Ecuador 3.0 1.0 3.0 1.0 2.0 1.0 3.0 1.0 2.0 ... 4.0 0.0 0.0 2.0 2.0 1.0 2.0 1.0 2.0 0.0
2 Mexico 3.0 1.0 3.0 1.0 2.0 1.0 3.0 1.0 1.0 ... 3.0 0.0 0.0 0.0 2.0 1.0 1.0 1.0 0.0 0.0
3 Spain 3.0 1.0 2.0 1.0 2.0 1.0 1.0 0.0 1.0 ... 4.0 2.0 0.0 1.0 2.0 1.0 1.0 1.0 0.0 0.0
4 Belgium 2.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 0.0 ... 4.0 2.0 0.0 1.0 2.0 1.0 1.0 1.0 0.0 0.0
5 United Kingdom 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 0.0 2.0 1.0 2.0 2.0 1.0 1.0 0.0 0.0 0.0
6 Italy 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 3.0 0.0 0.0 0.0 2.0 1.0 2.0 2.0 0.0 0.0
7 Russia 3.0 0.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 4.0 0.0 0.0 2.0 2.0 1.0 1.0 2.0 0.0 0.0
8 United States 3.0 0.0 3.0 0.0 2.0 0.0 4.0 0.0 1.0 ... 3.0 2.0 0.0 1.0 2.0 1.0 3.0 1.0 1.0 0.0
9 Brazil 3.0 0.0 3.0 0.0 2.0 0.0 3.0 0.0 2.0 ... 4.0 0.0 0.0 1.0 2.0 1.0 1.0 0.0 2.0 0.0
10 Chile 3.0 1.0 2.0 1.0 2.0 1.0 3.0 1.0 0.0 ... 3.0 0.0 0.0 1.0 2.0 1.0 2.0 2.0 0.0 0.0
11 Sweden 2.0 1.0 1.0 1.0 2.0 1.0 3.0 1.0 1.0 ... 3.0 2.0 0.0 0.0 2.0 1.0 1.0 1.0 0.0 0.0
12 South Africa 3.0 1.0 3.0 1.0 2.0 1.0 3.0 1.0 1.0 ... 4.0 0.0 0.0 0.0 2.0 1.0 2.0 2.0 1.0 1.0
13 Portugal 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 3.0 1.0 1.0 2.0 2.0 1.0 2.0 0.0 0.0 0.0
14 Netherlands 3.0 1.0 3.0 1.0 2.0 1.0 3.0 1.0 0.0 ... 3.0 2.0 0.0 0.0 2.0 1.0 1.0 1.0 0.0 0.0
15 France 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 3.0 2.0 1.0 2.0 2.0 1.0 1.0 1.0 0.0 0.0
16 Switzerland 3.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 0.0 ... 3.0 2.0 0.0 1.0 2.0 1.0 1.0 1.0 0.0 0.0
17 Germany 3.0 1.0 2.0 1.0 2.0 1.0 4.0 1.0 0.0 ... 4.0 2.0 0.0 0.0 2.0 1.0 1.0 1.0 0.0 0.0
18 Austria 2.0 1.0 3.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 3.0 2.0 0.0 2.0 2.0 1.0 2.0 1.0 0.0 0.0
19 Norway 3.0 1.0 2.0 1.0 2.0 1.0 4.0 1.0 1.0 ... 4.0 2.0 0.0 2.0 2.0 1.0 1.0 0.0 0.0 0.0
20 Denmark 3.0 1.0 2.0 1.0 1.0 1.0 4.0 1.0 1.0 ... 4.0 2.0 0.0 0.0 2.0 1.0 1.0 1.0 0.0 0.0

21 rows × 25 columns

It's clear that several features have the same value for all countries. These features can be dropped because they add nothing to the analysis.

In [110]:
for col in lockdown_measures_df.columns:
    if len(lockdown_measures_df[col].unique()) == 1:
        lockdown_measures_df.drop(columns=col, inplace=True)
In [111]:
lockdown_measures_df.shape
Out[111]:
(21, 23)

lockdown_measures_df now only contains features relevant to the clustering analysis.

Now merge lockdown_measures_df into total_excess_deaths_per_100k_df. This combines the lockdown measures we want to cluster with the data about excess deaths.

In [112]:
total_excess_deaths_per_100k_df = total_excess_deaths_per_100k_df.merge(
    right=lockdown_measures_df, how='inner', on='Country')
total_excess_deaths_per_100k_df
Out[112]:
Country total_excess_deaths_per_100k time_to_lockdown first_week_of_testing mean_tests_per_1000_per_week tests_units C1_School closing C1_Flag C2_Workplace closing C2_Flag ... C7_Restrictions on internal movement C7_Flag C8_International travel controls E1_Income support E1_Flag E2_Debt/contract relief H2_Testing policy H3_Contact tracing H6_Facial Coverings H6_Flag
0 Peru 238.331394 -12 1.0 0.923077 1.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 4.0 1.0 1.0 2.0 1.0 1.0 0.0 0.0
1 Ecuador 178.455314 -4 3.0 0.629630 4.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 4.0 0.0 0.0 2.0 2.0 1.0 2.0 0.0
2 Mexico 160.275072 1 3.0 0.480000 4.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 3.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0
3 Spain 104.634755 11 6.0 3.805556 1.0 3.0 1.0 2.0 1.0 ... 1.0 1.0 4.0 2.0 0.0 1.0 1.0 1.0 0.0 0.0
4 Belgium 96.009963 2 0.0 6.393939 1.0 2.0 1.0 3.0 1.0 ... 2.0 1.0 4.0 2.0 0.0 1.0 1.0 1.0 0.0 0.0
5 United Kingdom 96.005630 10 4.0 6.028571 1.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 0.0 2.0 1.0 2.0 1.0 0.0 0.0 0.0
6 Italy 87.204668 7 1.0 5.280000 1.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 3.0 0.0 0.0 0.0 2.0 2.0 0.0 0.0
7 Russia 83.907859 -2 -2.0 11.346154 1.0 3.0 0.0 3.0 1.0 ... 2.0 0.0 4.0 0.0 0.0 2.0 1.0 2.0 0.0 0.0
8 United States 79.976998 20 2.0 7.941176 1.0 3.0 0.0 3.0 0.0 ... 2.0 0.0 3.0 2.0 0.0 1.0 3.0 1.0 1.0 0.0
9 Brazil 65.882810 2 5.0 1.037037 1.0 3.0 0.0 3.0 0.0 ... 2.0 0.0 4.0 0.0 0.0 1.0 1.0 0.0 2.0 0.0
10 Chile 65.286668 -9 -1.0 5.250000 1.0 3.0 1.0 2.0 1.0 ... 2.0 0.0 3.0 0.0 0.0 1.0 2.0 2.0 0.0 0.0
11 Sweden 62.777608 19 18.0 1.617647 0.0 2.0 1.0 1.0 1.0 ... 1.0 1.0 3.0 2.0 0.0 0.0 1.0 1.0 0.0 0.0
12 South Africa 62.109717 -12 -4.0 2.655172 4.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 4.0 0.0 0.0 0.0 2.0 2.0 1.0 1.0
13 Portugal 59.408429 -1 -1.0 6.428571 2.0 3.0 1.0 3.0 1.0 ... 1.0 1.0 3.0 1.0 1.0 2.0 2.0 0.0 0.0 0.0
14 Netherlands 55.606325 7 0.0 3.114286 4.0 3.0 1.0 3.0 1.0 ... 1.0 1.0 3.0 2.0 0.0 0.0 1.0 1.0 0.0 0.0
15 France 45.578831 10 10.0 3.085714 2.0 3.0 1.0 3.0 1.0 ... 2.0 1.0 3.0 2.0 1.0 2.0 1.0 1.0 0.0 0.0
16 Switzerland 11.422535 5 -1.0 3.657143 1.0 3.0 1.0 3.0 1.0 ... 1.0 1.0 3.0 2.0 0.0 1.0 1.0 1.0 0.0 0.0
17 Germany 9.343985 7 -1.0 5.193548 1.0 3.0 1.0 2.0 1.0 ... 2.0 0.0 4.0 2.0 0.0 0.0 1.0 1.0 0.0 0.0
18 Austria 7.070242 -5 -2.0 4.382353 1.0 2.0 1.0 3.0 1.0 ... 2.0 0.0 3.0 2.0 0.0 2.0 2.0 1.0 0.0 0.0
19 Norway 4.634931 -2 -3.0 6.531250 4.0 3.0 1.0 2.0 1.0 ... 2.0 1.0 4.0 2.0 0.0 2.0 1.0 0.0 0.0 0.0
20 Denmark 2.218878 -4 -1.0 15.848485 1.0 3.0 1.0 2.0 1.0 ... 1.0 1.0 4.0 2.0 0.0 0.0 1.0 1.0 0.0 0.0

21 rows × 28 columns

We are building a list of features to cluster. The country and total_excess_deaths_per_100k features are not useful for the clustering analysis so will not be included. The level of testing does not seem to have much effect on the number of excess deaths (as seen in section 4.4.) so features related to testing will also be excluded. This allows the list of features to be defined in cluster_features:

In [113]:
cluster_features = list(total_excess_deaths_per_100k_df.columns)
cluster_features.remove('Country')
cluster_features.remove('total_excess_deaths_per_100k')
cluster_features.remove('mean_tests_per_1000_per_week')
cluster_features.remove('tests_units')
cluster_features
Out[113]:
['time_to_lockdown',
 'first_week_of_testing',
 'C1_School closing',
 'C1_Flag',
 'C2_Workplace closing',
 'C2_Flag',
 'C3_Cancel public events',
 'C3_Flag',
 'C4_Restrictions on gatherings',
 'C4_Flag',
 'C5_Close public transport',
 'C5_Flag',
 'C6_Stay at home requirements',
 'C6_Flag',
 'C7_Restrictions on internal movement',
 'C7_Flag',
 'C8_International travel controls',
 'E1_Income support',
 'E1_Flag',
 'E2_Debt/contract relief',
 'H2_Testing policy',
 'H3_Contact tracing',
 'H6_Facial Coverings',
 'H6_Flag']

Next, define two subsets of the data, one including the countries with the highest excess death rates, and one including the countries with the lowest excess death rates (see section 4.1.2.2.).

In [114]:
high_xs_df = total_excess_deaths_per_100k_df[
    (total_excess_deaths_per_100k_df['Country'] == 'Mexico') |
    (total_excess_deaths_per_100k_df['Country'] == 'Spain') |
    (total_excess_deaths_per_100k_df['Country'] == 'Peru') |
    (total_excess_deaths_per_100k_df['Country'] == 'Ecuador') |
    (total_excess_deaths_per_100k_df['Country'] == 'Belgium')][
    cluster_features]
In [115]:
low_xs_df = total_excess_deaths_per_100k_df[
    (total_excess_deaths_per_100k_df['Country'] == 'Germany') |
    (total_excess_deaths_per_100k_df['Country'] == 'Denmark') |
    (total_excess_deaths_per_100k_df['Country'] == 'Austria') |
    (total_excess_deaths_per_100k_df['Country'] == 'Norway') |
    (total_excess_deaths_per_100k_df['Country'] == 'Switzerland')][
    cluster_features]

5.2. Feature Scaling

Confirm that the data contains no null values (which would break the clustering algorithm):

In [116]:
all_xs_df = total_excess_deaths_per_100k_df[cluster_features]
all_xs_df.isnull().sum()
Out[116]:
time_to_lockdown                        0
first_week_of_testing                   0
C1_School closing                       0
C1_Flag                                 0
C2_Workplace closing                    0
C2_Flag                                 0
C3_Cancel public events                 0
C3_Flag                                 0
C4_Restrictions on gatherings           0
C4_Flag                                 0
C5_Close public transport               0
C5_Flag                                 0
C6_Stay at home requirements            0
C6_Flag                                 0
C7_Restrictions on internal movement    0
C7_Flag                                 0
C8_International travel controls        0
E1_Income support                       0
E1_Flag                                 0
E2_Debt/contract relief                 0
H2_Testing policy                       0
H3_Contact tracing                      0
H6_Facial Coverings                     0
H6_Flag                                 0
dtype: int64

Scale data with StandardScaler. Save the scaling model for later use on the high_xs and low_xs dataframes.

In [117]:
# Apply feature scaling
scaler = StandardScaler()
# Fit data, save scaling model
scaling_model = scaler.fit(all_xs_df)
# Transform the data
all_xs_df_scaled = scaling_model.transform(all_xs_df)

5.3. Dimensionality Reduction

Use principal component analysis to reduce the number of dimensions in the dataset.

In [118]:
# Apply PCA to the data.
pca = PCA(random_state=11)
pca_model = pca.fit(all_xs_df_scaled)

Examine the variance represented by each principal component. The aim is to identify the most important ones, retain those, and drop the others from the analysis to produce a simpler model.

In [119]:
# Calculate variance values and a cumulative total
num_components = len(pca_model.explained_variance_ratio_)
ind = np.arange(num_components)
vals = (pca_model.explained_variance_ratio_) * 100
cumvals = np.cumsum(vals)

# Plot graphs of variance value and cumulative total
fig, ax = plt.subplots(2, 1, figsize=[18, 20])
ax[0].set_title("Graph {} - Variance Explained by Each Principal Component"
                .format(graphnum))
ax[0].bar(ind, vals)
ax[0].xaxis.set_tick_params(width=0)
ax[0].yaxis.set_tick_params(width=2, length=12)
ax[0].set_xlabel("Principal Component")
ax[0].set_ylabel("Variance Explained (%)")
ax[0].xaxis.set_ticks(np.arange(0, 18, 1))
graphnum += 1

ax[1].set_title("Graph {} - Cumulative Variance Explained by Each Principal "
                "Component".format(graphnum))
ax[1].plot(ind, cumvals)
ax[1].xaxis.set_tick_params(width=0)
ax[1].yaxis.set_tick_params(width=2, length=12)
ax[1].grid()
ax[1].set_xlabel("Principal Component")
ax[1].set_ylabel("Variance Explained (%)")
ax[1].xaxis.set_ticks(np.arange(0, 18, 1))
ax[1].yaxis.set_ticks(np.arange(0, 100, 10))
graphnum += 1

plt.show()

Nine principal components (0-8) account more for than 85% of the variance. Re-fit the PCA model with 9 principal components and transform the full data set into the principal components. Retain the model for future use on the low_xs and high_xs datsets.

In [120]:
# Re-apply PCA to the data for 9 principal components.
pca = PCA(n_components=9, random_state=20)
# Retain PCA model for later use on customer data.
pca_model = pca.fit(all_xs_df_scaled)
all_xs_pca = pca_model.transform(all_xs_df_scaled)

5.4. Interpret Principal Components

Each principal component (labelled from 0 to 8) consists of a weighted sum of the government measures we're interested in. We now interpret the principal components in terms of those government measures.

General Interpretation

A principal component (PC) will itself be a weighted sum of the features in the data set. In general, a principal component will have some features which are positive and some which are negative.

A principal component will increase in the positive direction (or decrease in the negative direction) with an increase in the absolute value of the positive features. The reverse is true for the negative features, i.e. a principal component will decrease in the positive direction (or increase in the negative direction) with an increase in the absolute value of the negative features.

Each of the PCs will be interpreted accordingly.

In [121]:
def interpret_pc(pca_model, pca_num):
    """Print principal components including top 3 positive and negative.

    param pca_model: fitted PCA model
    param pca_num: principal component number to interpret
    """
    pc_to_feat = pd.DataFrame(pca_model.components_, columns=all_xs_df.columns)
    pc = pc_to_feat.iloc[pca_num]
    print("All component weights for Principal Component {}, "
          "sorted by weight:".format(pca_num))
    print(pc.sort_values(ascending=False))
    print("")
    print("3 largest positive-weighted features in Principal Component {0}:"
          .format(pca_num))
    print(pc.sort_values(ascending=False).iloc[0:3])
    print("")
    print("3 largest negative-weighted features in Principal Component {0}:"
          .format(pca_num))
    print(pc.sort_values(ascending=False).iloc[-3:])
In [122]:
interpret_pc(pca_model, 0)
All component weights for Principal Component 0, sorted by weight:
H6_Facial Coverings                     0.297720
C5_Close public transport               0.182381
C7_Restrictions on internal movement    0.169824
H2_Testing policy                       0.169442
C2_Workplace closing                    0.112182
C1_School closing                       0.094815
C8_International travel controls        0.086605
C3_Cancel public events                 0.083578
time_to_lockdown                        0.067123
E2_Debt/contract relief                 0.026931
C6_Stay at home requirements            0.005815
H6_Flag                                -0.004432
first_week_of_testing                  -0.019710
C4_Restrictions on gatherings          -0.020349
H3_Contact tracing                     -0.027561
E1_Flag                                -0.120611
E1_Income support                      -0.141039
C5_Flag                                -0.180562
C7_Flag                                -0.281611
C6_Flag                                -0.302172
C4_Flag                                -0.311688
C1_Flag                                -0.375526
C3_Flag                                -0.388471
C2_Flag                                -0.388471
Name: 0, dtype: float64

3 largest positive-weighted features in Principal Component 0:
H6_Facial Coverings                     0.297720
C5_Close public transport               0.182381
C7_Restrictions on internal movement    0.169824
Name: 0, dtype: float64

3 largest negative-weighted features in Principal Component 0:
C1_Flag   -0.375526
C3_Flag   -0.388471
C2_Flag   -0.388471
Name: 0, dtype: float64
In [123]:
interpret_pc(pca_model, 1)
All component weights for Principal Component 1, sorted by weight:
time_to_lockdown                        0.397862
first_week_of_testing                   0.353480
E1_Income support                       0.346915
C5_Flag                                 0.079437
C7_Flag                                 0.075416
C5_Close public transport               0.026650
E1_Flag                                -0.015550
C1_Flag                                -0.015851
H6_Facial Coverings                    -0.045349
C6_Flag                                -0.052006
E2_Debt/contract relief                -0.077471
C3_Cancel public events                -0.083882
C8_International travel controls       -0.095559
C4_Restrictions on gatherings          -0.123572
C1_School closing                      -0.126654
C2_Flag                                -0.141313
C3_Flag                                -0.141313
H2_Testing policy                      -0.170367
C4_Flag                                -0.222951
H6_Flag                                -0.239551
C7_Restrictions on internal movement   -0.285982
C2_Workplace closing                   -0.291205
H3_Contact tracing                     -0.299770
C6_Stay at home requirements           -0.304073
Name: 1, dtype: float64

3 largest positive-weighted features in Principal Component 1:
time_to_lockdown         0.397862
first_week_of_testing    0.353480
E1_Income support        0.346915
Name: 1, dtype: float64

3 largest negative-weighted features in Principal Component 1:
C2_Workplace closing           -0.291205
H3_Contact tracing             -0.299770
C6_Stay at home requirements   -0.304073
Name: 1, dtype: float64
In [124]:
interpret_pc(pca_model, 2)
All component weights for Principal Component 2, sorted by weight:
E1_Flag                                 0.490060
E2_Debt/contract relief                 0.464745
C5_Flag                                 0.273231
C2_Workplace closing                    0.266997
C5_Close public transport               0.250268
C4_Restrictions on gatherings           0.203424
C7_Restrictions on internal movement    0.141972
C3_Cancel public events                 0.136033
C6_Stay at home requirements            0.107394
C7_Flag                                 0.099014
first_week_of_testing                   0.078252
C1_School closing                       0.063806
E1_Income support                       0.054692
H6_Facial Coverings                     0.051708
C6_Flag                                 0.044609
C4_Flag                                 0.023110
H2_Testing policy                       0.022933
time_to_lockdown                        0.000613
C1_Flag                                -0.012994
C2_Flag                                -0.039640
C3_Flag                                -0.039640
H6_Flag                                -0.126494
C8_International travel controls       -0.285579
H3_Contact tracing                     -0.337814
Name: 2, dtype: float64

3 largest positive-weighted features in Principal Component 2:
E1_Flag                    0.490060
E2_Debt/contract relief    0.464745
C5_Flag                    0.273231
Name: 2, dtype: float64

3 largest negative-weighted features in Principal Component 2:
H6_Flag                            -0.126494
C8_International travel controls   -0.285579
H3_Contact tracing                 -0.337814
Name: 2, dtype: float64
In [125]:
interpret_pc(pca_model, 3)
All component weights for Principal Component 3, sorted by weight:
C5_Close public transport               0.421618
C5_Flag                                 0.369069
H6_Facial Coverings                     0.342607
H6_Flag                                 0.303263
C7_Flag                                 0.265940
C6_Flag                                 0.199072
C8_International travel controls        0.189112
first_week_of_testing                   0.140084
C1_Flag                                 0.103282
C1_School closing                       0.098005
H2_Testing policy                       0.051149
C3_Flag                                 0.002971
C2_Flag                                 0.002971
H3_Contact tracing                     -0.018568
E1_Flag                                -0.026921
E2_Debt/contract relief                -0.048148
C2_Workplace closing                   -0.071673
C7_Restrictions on internal movement   -0.106836
C6_Stay at home requirements           -0.111768
C3_Cancel public events                -0.114509
C4_Flag                                -0.125813
time_to_lockdown                       -0.175103
E1_Income support                      -0.229962
C4_Restrictions on gatherings          -0.378306
Name: 3, dtype: float64

3 largest positive-weighted features in Principal Component 3:
C5_Close public transport    0.421618
C5_Flag                      0.369069
H6_Facial Coverings          0.342607
Name: 3, dtype: float64

3 largest negative-weighted features in Principal Component 3:
time_to_lockdown                -0.175103
E1_Income support               -0.229962
C4_Restrictions on gatherings   -0.378306
Name: 3, dtype: float64
In [126]:
interpret_pc(pca_model, 4)
All component weights for Principal Component 4, sorted by weight:
C4_Restrictions on gatherings           0.309767
C8_International travel controls        0.285709
C5_Flag                                 0.136855
E2_Debt/contract relief                 0.124474
E1_Income support                       0.119962
C4_Flag                                 0.116463
C1_School closing                       0.112767
C5_Close public transport               0.061211
H6_Facial Coverings                     0.014916
C3_Flag                                -0.002767
C2_Flag                                -0.002767
C7_Restrictions on internal movement   -0.015711
C1_Flag                                -0.025772
C7_Flag                                -0.038499
H6_Flag                                -0.044216
E1_Flag                                -0.059176
C2_Workplace closing                   -0.098375
H2_Testing policy                      -0.166925
H3_Contact tracing                     -0.262412
C6_Flag                                -0.286137
time_to_lockdown                       -0.315474
first_week_of_testing                  -0.357568
C6_Stay at home requirements           -0.372645
C3_Cancel public events                -0.425638
Name: 4, dtype: float64

3 largest positive-weighted features in Principal Component 4:
C4_Restrictions on gatherings       0.309767
C8_International travel controls    0.285709
C5_Flag                             0.136855
Name: 4, dtype: float64

3 largest negative-weighted features in Principal Component 4:
first_week_of_testing          -0.357568
C6_Stay at home requirements   -0.372645
C3_Cancel public events        -0.425638
Name: 4, dtype: float64
In [127]:
interpret_pc(pca_model, 5)
All component weights for Principal Component 5, sorted by weight:
C7_Restrictions on internal movement    0.309700
E2_Debt/contract relief                 0.268246
C3_Cancel public events                 0.247364
C8_International travel controls        0.227642
first_week_of_testing                   0.216440
C5_Flag                                 0.208751
C5_Close public transport               0.147615
C3_Flag                                 0.115970
C2_Flag                                 0.115970
C4_Flag                                 0.115679
H3_Contact tracing                      0.073267
H6_Facial Coverings                     0.026973
E1_Income support                       0.000735
C4_Restrictions on gatherings          -0.001929
C1_Flag                                -0.002238
C6_Stay at home requirements           -0.005253
H2_Testing policy                      -0.013699
H6_Flag                                -0.070700
time_to_lockdown                       -0.094110
C6_Flag                                -0.131055
E1_Flag                                -0.152675
C7_Flag                                -0.264176
C2_Workplace closing                   -0.306562
C1_School closing                      -0.584977
Name: 5, dtype: float64

3 largest positive-weighted features in Principal Component 5:
C7_Restrictions on internal movement    0.309700
E2_Debt/contract relief                 0.268246
C3_Cancel public events                 0.247364
Name: 5, dtype: float64

3 largest negative-weighted features in Principal Component 5:
C7_Flag                -0.264176
C2_Workplace closing   -0.306562
C1_School closing      -0.584977
Name: 5, dtype: float64
In [128]:
interpret_pc(pca_model, 6)
All component weights for Principal Component 6, sorted by weight:
C1_School closing                       0.355599
C8_International travel controls        0.248117
C6_Stay at home requirements            0.210686
E2_Debt/contract relief                 0.154349
C3_Flag                                 0.148263
C2_Flag                                 0.148263
C3_Cancel public events                 0.143355
first_week_of_testing                   0.094460
E1_Flag                                 0.088772
C5_Close public transport               0.040275
C7_Flag                                -0.002674
H3_Contact tracing                     -0.025393
C7_Restrictions on internal movement   -0.027573
C2_Workplace closing                   -0.063610
time_to_lockdown                       -0.079975
C4_Flag                                -0.091405
H6_Facial Coverings                    -0.105355
C1_Flag                                -0.113479
C5_Flag                                -0.145556
C6_Flag                                -0.183210
E1_Income support                      -0.209571
C4_Restrictions on gatherings          -0.316292
H6_Flag                                -0.319693
H2_Testing policy                      -0.561900
Name: 6, dtype: float64

3 largest positive-weighted features in Principal Component 6:
C1_School closing                   0.355599
C8_International travel controls    0.248117
C6_Stay at home requirements        0.210686
Name: 6, dtype: float64

3 largest negative-weighted features in Principal Component 6:
C4_Restrictions on gatherings   -0.316292
H6_Flag                         -0.319693
H2_Testing policy               -0.561900
Name: 6, dtype: float64
In [129]:
interpret_pc(pca_model, 7)
All component weights for Principal Component 7, sorted by weight:
C6_Stay at home requirements            0.435894
H3_Contact tracing                      0.281299
H2_Testing policy                       0.253022
C5_Flag                                 0.217035
E1_Flag                                 0.141482
E2_Debt/contract relief                 0.136327
C6_Flag                                 0.129049
C8_International travel controls        0.121443
E1_Income support                       0.105226
C5_Close public transport               0.074373
first_week_of_testing                   0.022200
C4_Restrictions on gatherings          -0.012170
C2_Flag                                -0.013476
C3_Flag                                -0.013476
C1_School closing                      -0.016016
time_to_lockdown                       -0.035202
C2_Workplace closing                   -0.118783
C4_Flag                                -0.172111
C1_Flag                                -0.178841
H6_Facial Coverings                    -0.180124
H6_Flag                                -0.217347
C7_Flag                                -0.246796
C7_Restrictions on internal movement   -0.262907
C3_Cancel public events                -0.495183
Name: 7, dtype: float64

3 largest positive-weighted features in Principal Component 7:
C6_Stay at home requirements    0.435894
H3_Contact tracing              0.281299
H2_Testing policy               0.253022
Name: 7, dtype: float64

3 largest negative-weighted features in Principal Component 7:
C7_Flag                                -0.246796
C7_Restrictions on internal movement   -0.262907
C3_Cancel public events                -0.495183
Name: 7, dtype: float64
In [130]:
interpret_pc(pca_model, 8)
All component weights for Principal Component 8, sorted by weight:
C3_Cancel public events                 0.360277
E1_Income support                       0.354838
E2_Debt/contract relief                 0.262688
H6_Flag                                 0.210287
C8_International travel controls        0.176448
H2_Testing policy                       0.171470
C5_Flag                                 0.156440
C1_Flag                                 0.109768
C2_Workplace closing                    0.041617
C6_Stay at home requirements            0.039574
C1_School closing                       0.013932
C3_Flag                                 0.012541
C2_Flag                                 0.012541
E1_Flag                                -0.012452
C6_Flag                                -0.060682
C7_Flag                                -0.072402
H6_Facial Coverings                    -0.081109
time_to_lockdown                       -0.086688
H3_Contact tracing                     -0.158074
C7_Restrictions on internal movement   -0.188400
C5_Close public transport              -0.303781
C4_Flag                                -0.324450
C4_Restrictions on gatherings          -0.333736
first_week_of_testing                  -0.370963
Name: 8, dtype: float64

3 largest positive-weighted features in Principal Component 8:
C3_Cancel public events    0.360277
E1_Income support          0.354838
E2_Debt/contract relief    0.262688
Name: 8, dtype: float64

3 largest negative-weighted features in Principal Component 8:
C4_Flag                         -0.324450
C4_Restrictions on gatherings   -0.333736
first_week_of_testing           -0.370963
Name: 8, dtype: float64

5.5. Clustering

Now use K-means clustering on the data. We don't initially know how many clusters to choose, so create a number of models with increasing numbers of clusters and score them (a lower score indicates a better fit).

In [131]:
MAX_CLUSTERS = 17

kmeans = []
models = []
scores = []
for clusters in range(MAX_CLUSTERS):
    kmeans.append(KMeans(clusters+1, random_state=42))
    models.append(kmeans[clusters].fit(all_xs_pca))
    scores.append(np.abs(models[clusters].score(all_xs_pca)))
    print("Score for K = {0} is {1}".format(clusters+1, scores[clusters]))
Score for K = 1 is 434.7008903809553
Score for K = 2 is 330.36742419322394
Score for K = 3 is 273.5287630806134
Score for K = 4 is 229.03314687038412
Score for K = 5 is 190.8272856149549
Score for K = 6 is 156.66525405979928
Score for K = 7 is 137.78169119936175
Score for K = 8 is 112.88534220956826
Score for K = 9 is 96.50388245325425
Score for K = 10 is 81.6210297379659
Score for K = 11 is 69.86469798210541
Score for K = 12 is 51.03805238211051
Score for K = 13 is 39.8198049549145
Score for K = 14 is 29.126788552582703
Score for K = 15 is 19.863451149710073
Score for K = 16 is 14.309822118080083
Score for K = 17 is 10.241183340115011

Plot the variation in score with the number of centres (K). We are looking for the "elbow point" where the rate of decrease in score noticably flattens.

In [132]:
centres = list(range(1, MAX_CLUSTERS+1))
plt.figure(figsize=(18, 9))
plt.plot(centres, scores)
plt.title("Graph {} - Variation in Score with Number of Centres (K)"
          .format(graphnum))
plt.xlabel("Number of Centres (=K)")
plt.ylabel("Score")
plt.xticks(centres)
plt.show()
graphnum += 1

After trying several values for K, set K=6. Use the model trained above with K=6 to calculate the cluster labels for each country.

In [133]:
CLUSTERS = 6
kmeans_model = models[CLUSTERS-1]
all_xs_kmeans_labels = kmeans_model.predict(all_xs_pca)

Now apply the scaling and PCA transform steps (using the same models trained on all the data above) to the high and low excess deaths groups. Then use the K-means model trained above to calculate their cluster labels.

In [134]:
low_xs_scaled = scaling_model.transform(low_xs_df)
low_xs_pca = pca_model.transform(low_xs_scaled)
low_xs_kmeans_labels = kmeans_model.predict(low_xs_pca)
In [135]:
high_xs_scaled = scaling_model.transform(high_xs_df)
high_xs_pca = pca_model.transform(high_xs_scaled)
high_xs_kmeans_labels = kmeans_model.predict(high_xs_pca)

Now compare the proportions of each data set (all_xs_pca, low_xs_pca and high_xs_pca) represented in each cluster.

In [136]:
# Calculate the proportion of the data set made up by each cluster
low_xs_label_count = np.bincount(low_xs_kmeans_labels, minlength=CLUSTERS)
high_xs_label_count = np.bincount(high_xs_kmeans_labels, minlength=CLUSTERS)
all_xs_label_count = np.bincount(all_xs_kmeans_labels, minlength=CLUSTERS)
low_xs_proportion = low_xs_label_count / len(low_xs_kmeans_labels)
high_xs_proportion = high_xs_label_count / len(high_xs_kmeans_labels)
all_xs_proportion = all_xs_label_count / len(all_xs_kmeans_labels)

k = np.arange(0, CLUSTERS)
# Plot a chart to show the proportion of each data set
# represented by each cluster

fig, ax = plt.subplots(figsize=[18, 9])
width = 0.25
p1 = ax.bar(k, all_xs_proportion * 100, width, color='b')
p2 = ax.bar(k+width, low_xs_proportion * 100, width, color='g')
p3 = ax.bar(k+2*width, high_xs_proportion * 100, width, color='r')
ax.set_title("Graph {} - Proportion of Data Set Represented by Each Cluster "
             "for all_xs, low_xs and high_xs Data Sets".format(graphnum))
ax.set_xlabel("Cluster Number (K)")
ax.set_ylabel("Proportion (%)")
ax.set_xticks(k)
ax.legend((p1[0], p2[0], p3[0]), ('all_xs', 'low_xs', 'high_xs'))
ax.autoscale_view()
plt.show()
graphnum += 1

When looking at this graph it's important to remember that the low_xs and high_xs groups contain only 5 countries. This means that while a representation of 20% of the group might look a lot, it only represents 1 country. all_xs is bigger (21 countries) but still around 5% of that group represents 1 country. Just to illustrate this: the low_xs group looks very over-represented in cluster 4, but in reality there is just one country in that cluster, so we cannot draw any conclusion from this.

Knowing this, we can be appropriately careful about interpreting the results. Even with appropriate care, it's important not to draw very firm conclusions from such a small data set.

Nevertheless, the graph shows that the low_xs group is over-represented in cluster 2, with 4 countries, compared to 1 country from the high_xs group and one additional country from neither (6 countries total in this cluster.) low_xs is also under-represented in cluster 1, which contains no low_xs countries, and 6 countries in total, 2 of which are from the high_xs group. So these two clusters are worth looking at more closely.

(The cluster labels can vary with repeated runs of the clustering algorithm - this is normal for K-means clustering because there is an element of randomness in the algorithm. However, the interpretation of the components remains the same.)

This is a small data set so it is important not to read too much into the results. Therefore, we will focus on the single most important principal component represented by each cluster, and the top/bottom two features that contribute to that component.

In [137]:
def interpret_cluster(pca_model, cluster):
    """Print most significant principal component in a cluster.

    param pca_model: Fitted PCA model
    param cluster: Cluster number
    """
    cluster_pcs = pd.DataFrame(pca_model.cluster_centers_[cluster])
    print("Most Significant Principal Component (by absolute value) "
          "in Cluster {0}:".format(cluster))
    print(cluster_pcs.reindex(
        cluster_pcs.abs().sort_values(0, ascending=False).index).iloc[0])
In [138]:
# low_xs_df is over represented in cluster 2
# Print details of principal components:
print(kmeans_model.cluster_centers_[2])
print("")
interpret_cluster(kmeans_model, 2)
[-0.82154051  0.21403035 -0.59562918 -1.25105302  0.6711437   0.26490185
 -0.21872978 -0.60950525  0.60975092]

Most Significant Principal Component (by absolute value) in Cluster 2:
0   -1.251053
Name: 3, dtype: float64

PC3 negative:

Countries in this cluster have relatively high scores for:

  • C4_Restrictions on gatherings
  • E1_Income support

Countries in the low_xs group tend to implement C4 and E1 relatively strongly compared to those in the high_xs group.

Countries in this cluster have relatively low scores for:

  • C5_Close public transport
  • C5_Flag

Countries in the high_xs group tend to implement C5 relatively strongly compared to those than in the low_xs group.

Countries in the low_xs group are over-represented in cluster 2. Countries in the high_xs group are averagely represented in this cluster.

In [139]:
# low_xs_df is under represented in cluster 1.
# Print details of principal components:
print(kmeans_model.cluster_centers_[1])
print("")
interpret_cluster(kmeans_model, 1)
[ 0.32222752 -2.08812503 -0.74652298  0.60267565 -0.56793542  0.07737575
  0.18053995 -0.12473886 -0.4946833 ]

Most Significant Principal Component (by absolute value) in Cluster 1:
0   -2.088125
Name: 1, dtype: float64

PC1 negative:

Countries in this cluster have high values for:

  • C6_Stay at home requirements
  • H3_Contact tracing

And low scores for:

  • time_to_lockdown
  • first_week_of_testing

This means that although countries in this cluster tend to have implemented stay at home requirements and contact tracing relatively strongly, they also have a longer time_to_lockdown and a later first_week_of_testing.

Countries in the low_xs group are under-represented in this cluster, which countries in the high_xs group have average representation.

5.6. Conclusion and Evaluation on Clustering Analysis

In drawing conclusions from the model above it is important to keep in mind that the set of countries for which excess deaths data is available is small. For this reason it would be wrong to draw very firm conclusions. Nevertheless, it can be used to suggest some tentative conclusions, subject to further investigation.

The model tentatively suggests that the following measures are more strongly associated with low excess deaths:

  • C4_Restrictions on gatherings
  • E1_Income support

compared to the measures:

  • C5_Close public transport
  • C5_Flag which are less associated with low excess deaths.

The model also suggests that low values for the following measures are more strongly associated with low excess deaths:

  • time_to_lockdown (a low value means earlier lockdown)
  • first_week_of_testing (a low value means starting testing sooner)

compared to the measures:

  • C6_Stay at home requirements
  • H3_Contact tracing

Restricting gatherings would be expected to reduce transmission of the virus through person-to-person contact. Income support allows people to stop going to work which minimises another potential transmission source.

Income support might also indirectly mean that countries that are richer fare better in the pandemic. This probably follows, because if the government can afford to support people financially then they are also more likely to be able to provide a good standard of healthcare. This illustrates a very important point applicable to all the conclusions here: correlation between factors does not prove causation. Income support is correlated with low exess deaths, but the model cannot tell us if this is because income support is itself the cause of lower excess deaths, or whether other factors related to wealthy countries are more important.

It's logical to expect that stay at home requirements and contact tracing would reduce transmission and deaths. Nevertheless, this model suggests that the speed of the response (a quicker lockdown, and a quicker start to the testing programme) is a more important factor in reducing the number of excess deaths overall.

It is important to note that although some measures may be identified as more strongly associated with minimising deaths, this is relative to other measures. It does not mean that measures that are not strongly associated with a lower level of excess deaths are pointless - indeed, those measures may save very many lives. It just means that some measures are more effective than others.

6. Prediction Model for Confirmed Cases

6.1. Approach

The aim of this section is to create a prediction model for the time evolution of the number of cases in each country. The main input features will be the government measures taken. The model's performance as a predictor is one factor of interest, but the importance of the features in the model will also be analysed. The intention is to use the feature importances to infer which government measures are most important in controlling the spread of the virus, if possible.

The approach will be to build one prediction model for all countries, as opposed to building a separate model for each country. The advantage is that the single model can be trained with many more data points.

The target value for the prediction model is the number of confirmed cases reported by each country, each day (7DANewCases). This model will use the well-known method of using lag and difference features to predict a time series (see for example [16]). Adding more lag features tends to improve accuracy but also increases complexity. After several experiments, seven lag features based on 7DANewCases was found to give a good performance. Lag features are denoted by a postfix for the number of days of lag. Specifically:

  • 7DANewCases-1: 7DANewCases on (day-1)
  • 7DANewCases-2: 7DANewCases on (day-2)
  • ...
  • 7DANewCases-7: 7DANewCases on (day-7)

With the same convention for other lag features.

7DADeltaNewCases is already calculated in the data in previous sections and this can be used to create lagged difference features:

  • 7DADeltaNewCases-1 = (7DANewCases-1) - (7DANewCases-2)
  • 7DADeltaNewCases-2 = (7DANewCases-2) - (7DANewCases-3)
  • ...
  • 7DADeltaNewCases-7 = (7DANewCases-7) - (7DANewCases-8)

The model will also use government measures as input values. It is useful to understand some essential features of the virus in order to find the best way to incorporate these.

When a patient is infected with COVID-19, the virus seems to follow the following (approximate) course:

  • Day 0: Infection.
  • Day 5: Symptoms show. The patient is now infectious.
  • Day 10: Severe cases may require hospital treatment.
  • Day 15: Mild cases recover. The patient is no longer infectious.

Severe cases may require longer hospitalisation, perhaps several weeks.

(References [11] and [12].)

This is a very simple, generalised model, and there is variation in the way the virus progresses in individual patients. Neverthless we will use this approximation to guide the construction of the model. Then it's clear that the number of new cases today depends partly on the government measures in place 5 to 14 days ago. One way to create the model would be to calculate 10 lag features for each government response, like this:

  • C1_School closing-5: C1_School closing on day-5
  • C1_School closing-6: C1_School closing on day-6
  • ...
  • C1_School closing-14: C1_School closing on day-14

The disadvantage is that this will lead to a model with hundreds of features and the complexity this introduces may present problems with training and interpreting the model. Instead, calculate these lag features and find the mean value over the period 5 to 14 days before the prediction. Thus, each government measure generates one feature.

The number of new cases must also depend partly on the number of infectious cases in the community 5 to 14 days ago. This model does not attempt to directly estimate the number of infectious cases in the community but the lag features based 7DANewCases described above provide an indirect indication of this.

With this approach, we can now construct a model.

6.2. Data Preparation

First prepare the data to be used in the prediction model.

Begin by dropping the most recent week of data. This is because new data arrives daily but is often revised and updated in the following days, so the most recent week is often unreliable.

In [140]:
combined_daily_df = combined_daily_df[combined_daily_df['date'] <
                                      (combined_daily_df['date'].max()) -
                                      timedelta(7)].copy()

Determine the last date in the data series. This will be used in several places in this section.

In [141]:
LAST_DATE = combined_daily_df['date'].max()

It is possible that some locations have not yet had a major outbreak of the virus and these will skew both training and testing. Therefore, exclude countries which have not been significantly affected by the virus to date. Any countries that have not reached Day 60 of the virus will be dropped.

In [142]:
virus_free = []
country_groups = combined_daily_df.groupby(['country'])
for c in list(country_groups.groups.keys()):
    country_group = country_groups.get_group(c)
    if country_group[country_group['date'] <=
                     LAST_DATE]['DayNumber'].max() < 60:
        virus_free.append(c)
print("Countries dropped from analysis because "
      "they have been minimally impacted: {}".format(virus_free))
combined_daily_df.drop(combined_daily_df.loc[
    combined_daily_df['country'].isin(virus_free)].index, inplace=True)
Countries dropped from analysis because they have been minimally impacted: ['Andorra', 'Barbados', 'Belize', 'Benin', 'Bhutan', 'Botswana', 'Brunei', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cape Verde', 'Comoros', "Cote d'Ivoire", 'Cyprus', 'Djibouti', 'Dominica', 'Eritrea', 'Fiji', 'Georgia', 'Guinea', 'Guyana', 'Hong Kong', 'Jordan', 'Laos', 'Latvia', 'Mauritius', 'Monaco', 'Mongolia', 'Mozambique', 'New Zealand', 'Niger', 'Papua New Guinea', 'Rwanda', 'Seychelles', 'Singapore', 'Solomon Islands', 'Sri Lanka', 'Taiwan', 'Thailand', 'Togo', 'Uruguay', 'Vanuatu', 'Vietnam']

The country name should be treated as a categorical variable in the prediction model. So the model understands this, encode country as a categorical variable now:

In [143]:
# Encode country field
labenc = LabelEncoder()
combined_daily_df['country_num'] = labenc.fit_transform(
    combined_daily_df['country'])
combined_daily_df['country_cat'] = combined_daily_df[
    'country_num'].astype('category')
combined_daily_df.drop(columns='country_num', inplace=True)
combined_daily_df.head()
Out[143]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... hospital_beds_per_thousand life_expectancy human_development_index calendar_week 7DANewCases 7DADeltaNewCases 7DANewFatalities 7DADeltaNewFatalities DayNumber country_cat
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN 1 0.0 0.0 0.0 0.0 -105 0
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN 1 0.0 0.0 0.0 0.0 -104 0
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN 1 0.0 0.0 0.0 0.0 -103 0
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN 1 0.0 0.0 0.0 0.0 -102 0
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... NaN NaN NaN 1 0.0 0.0 0.0 0.0 -101 0

5 rows × 92 columns

In [144]:
# Just for debugging convenience. These lines are useful during development.
# Uncomment this line to save a copy of the source data frame before processing
# combined_daily_df_saved = combined_daily_df.copy()
# Uncomment this line to reload the data frame saved in the line above
# combined_daily_df = combined_daily_df_saved.copy()

Choose the government measures to use in the prediction. Excluding some features is a good idea to reduce the complexity of the model.

Since H4_Emergency investment in healthcare and H5_Investment in vaccines are mostly focussed on treating the disease rather than stopping the spread these will be excluded from the analaysis.

E3_Fiscal measures and E4_International support are both measures expressed as one-off US dollar monetary amounts. This is very different from the ordinal and binary measures used in the other features so these will also be excluded.

In [145]:
gov_measures = [
    'C1_School closing',
    'C1_Flag',
    'C2_Workplace closing',
    'C2_Flag',
    'C3_Cancel public events',
    'C3_Flag',
    'C4_Restrictions on gatherings',
    'C4_Flag',
    'C5_Close public transport',
    'C5_Flag',
    'C6_Stay at home requirements',
    'C6_Flag',
    'C7_Restrictions on internal movement',
    'C7_Flag',
    'C8_International travel controls',
    'E1_Income support',
    'E1_Flag',
    'E2_Debt/contract relief',
    'H1_Public information campaigns',
    'H1_Flag',
    'H2_Testing policy',
    'H3_Contact tracing',
    'H6_Facial Coverings',
    'H6_Flag'
]

6.3. Engineering Lag Features

As described in section 6.1. Approach, the model will use lag and difference features for the government measures and number of new cases. These will be constructed here.

In [146]:
def make_lag_features(df, base_features, min_lag, max_lag):
    """Create lag features in a data frame.

    param df: data frame
    param base_features: existing feature to create lag features from
    param min_lag: smallest lag
    param max_lag: largest lag
    """
    country_groups = df.groupby(['country'])
    for c in list(country_groups.groups.keys()):
        country_group = country_groups.get_group(c)
        for i in range(min_lag, max_lag):
            for f in base_features:
                lagfeat = '{0}-{1}'.format(f, str(i))
                df.loc[(df['country'] == c),
                       lagfeat] = country_group[f].shift(i)

    # Replace null values resulting from using shift() with 0
    for i in range(min_lag, max_lag):
        for f in base_features:
            lagfeat = '{0}-{1}'.format(f, str(i))
            df[lagfeat].fillna(value=0, inplace=True)
In [147]:
# Define the number of lag features.
# The following two values apply to the gov. measures
MAX_LAG_GOV_MEASURES = 15
MIN_LAG_GOV_MEASURES = 5
# The following two values apply to 7DANewCases and 7DADeltaNewCases
MAX_LAG_CASES = 8
MIN_LAG_CASES = 1
In [148]:
# Lag features for government measures
make_lag_features(combined_daily_df, gov_measures,
                  MIN_LAG_GOV_MEASURES, MAX_LAG_GOV_MEASURES)
# Lag features for new cases
make_lag_features(combined_daily_df, ['7DANewCases', '7DADeltaNewCases'],
                  MIN_LAG_CASES, MAX_LAG_CASES)
In [149]:
combined_daily_df.head()
Out[149]:
country date C1_School closing C1_Flag C2_Workplace closing C2_Flag C3_Cancel public events C3_Flag C4_Restrictions on gatherings C4_Flag ... 7DANewCases-3 7DADeltaNewCases-3 7DANewCases-4 7DADeltaNewCases-4 7DANewCases-5 7DADeltaNewCases-5 7DANewCases-6 7DADeltaNewCases-6 7DANewCases-7 7DADeltaNewCases-7
335 Afghanistan 2020-01-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
336 Afghanistan 2020-01-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
337 Afghanistan 2020-01-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
338 Afghanistan 2020-01-04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
339 Afghanistan 2020-01-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

5 rows × 346 columns

As described in section 6.1. Approach, the model will use mean values of the lag features for the government measures to minimise complexity. Calculate these mean values now.

In [150]:
def find_lag_features(features, max_lag, min_lag):
    """ Create a list of lag feature names from their base features.

    param features: list of base features not including lag features
    param min_lag: smallest lag
    param max_lag: largest lag
    return lag_features: list of lag feature names not including base features
    """
    lag_features = []
    lag_features = ['{0}-{1}'.format(f, str(i)) for i in range(
        min_lag, max_lag) for f in features]
    return lag_features
In [151]:
for measure in gov_measures:
    meanfeat = 'mean-{0}'.format(measure)
    combined_daily_df[meanfeat] = combined_daily_df[
        find_lag_features([measure],
                          MAX_LAG_GOV_MEASURES,
                          MIN_LAG_GOV_MEASURES)].mean(axis=1)
In [152]:
def find_mean_features(features):
    """ Create a list of mean feature names from their base features.

    param features: list of base features not including lag features
    return mean_features: list of mean feature names
    """
    mean_features = []
    mean_features = ['mean-{0}'.format(f) for f in features]
    return mean_features

6.4. Feature Selection

Define the full list of features (including lag and difference features) to be used in the model.

Create a complete list of all features (including lag features).

In [153]:
features = (['country',
             'country_cat',
             'date',
             'DayNumber',
             '7DANewCases',
             '7DADeltaNewCases']
            + find_lag_features(['7DANewCases', '7DADeltaNewCases'],
                                MAX_LAG_CASES, MIN_LAG_CASES)
            + find_mean_features(gov_measures))
In [154]:
features
Out[154]:
['country',
 'country_cat',
 'date',
 'DayNumber',
 '7DANewCases',
 '7DADeltaNewCases',
 '7DANewCases-1',
 '7DADeltaNewCases-1',
 '7DANewCases-2',
 '7DADeltaNewCases-2',
 '7DANewCases-3',
 '7DADeltaNewCases-3',
 '7DANewCases-4',
 '7DADeltaNewCases-4',
 '7DANewCases-5',
 '7DADeltaNewCases-5',
 '7DANewCases-6',
 '7DADeltaNewCases-6',
 '7DANewCases-7',
 '7DADeltaNewCases-7',
 'mean-C1_School closing',
 'mean-C1_Flag',
 'mean-C2_Workplace closing',
 'mean-C2_Flag',
 'mean-C3_Cancel public events',
 'mean-C3_Flag',
 'mean-C4_Restrictions on gatherings',
 'mean-C4_Flag',
 'mean-C5_Close public transport',
 'mean-C5_Flag',
 'mean-C6_Stay at home requirements',
 'mean-C6_Flag',
 'mean-C7_Restrictions on internal movement',
 'mean-C7_Flag',
 'mean-C8_International travel controls',
 'mean-E1_Income support',
 'mean-E1_Flag',
 'mean-E2_Debt/contract relief',
 'mean-H1_Public information campaigns',
 'mean-H1_Flag',
 'mean-H2_Testing policy',
 'mean-H3_Contact tracing',
 'mean-H6_Facial Coverings',
 'mean-H6_Flag']

6.5. Splitting Data for Training and Testing

Data will be split into train and test and sets based on country and date.

Randomly split the countries into two groups:

  • 75% of the countries are training-only countries. All of the data from these will be used in training the model.
  • 25% of the countries are used for training and testing. Data up to and including DayNumber 30 for these countries will be used in training, but the rest will be excluded from training and used only in testing.

Since we have already excluded countries where the virus has not reached DayNumber 60, we know that for each of the testing countries, there is least 30 days of testing data available. This gives a good amount of testing data.

In [155]:
country_list = list(combined_daily_df['country'].unique())
num_countries = len(country_list)
test_countries = random.sample(country_list, k=round(num_countries/4))
test_countries
Out[155]:
['San Marino',
 'Hungary',
 'Palestine',
 'Norway',
 'Kosovo',
 'Indonesia',
 'Kenya',
 'Tajikistan',
 'Malawi',
 'Honduras',
 'Peru',
 'Nigeria',
 'India',
 'Brazil',
 'Romania',
 'Oman',
 'Ukraine',
 'Mali',
 'Central African Republic',
 'Croatia',
 'Zambia',
 'Panama',
 'South Africa',
 'El Salvador',
 'Angola',
 'Tanzania',
 'Kazakhstan',
 'Syria',
 'Trinidad and Tobago',
 'Turkey',
 'Bahrain',
 'Saudi Arabia']

Create two separate dataframes for training and testing. combined_daily_df_test holds data for the test countries, and drop these countries from the training set (combined_daily_df_train).

In [156]:
combined_daily_df_test = combined_daily_df.drop(
    combined_daily_df.loc[~combined_daily_df['country'].isin(test_countries)]
    .index)
combined_daily_df_train = combined_daily_df.drop(combined_daily_df.loc[
    (combined_daily_df['country'].isin(test_countries))
    & (combined_daily_df['DayNumber'] > 30)].index)
In [157]:
# Create a feature True7DANewCases to hold the ground truth values.
# This is because 7DANewCases will be updated dynamically when long range
# predictions are made.
combined_daily_df_test['True7DANewCases'] = \
    combined_daily_df_test['7DANewCases']

6.6. Training the Model

Light GBM Regressor (LGBMRegressor) is used in this model. Several other models were tried, including XGBMRegressor, GradientBoostingRegressor and RandomForestRegressor. In my experiments, LGBMRegressor gives the best performance.

Data is scaled with MinMaxScaler. In my experiments, this gives a better performance than StandardScaler.

These are combined in a pipeline.

Grid search with cross validation is used to find the optimal parameters. Each training pass attempts to predict the new daily cases (7 day average) for one country/date combination in the training set. GridSearchCV handles the validation testing automatically by reserving a validation set for each of the folds defined in parameter cv.

Several cross validation scorers were tried (including root mean squared error and root mean squared log error). Cross validation scoring based on mean absolute error gives the best results.

In [158]:
mae_score = make_scorer(mean_absolute_error, greater_is_better=False)
In [159]:
def train_model(parameters, X_train, y_train):
    """ Train the model.

    param parameters: Model parameters to optimise.
    param X_train: Input features for the model.
    param y_train: Labels (ground-truth 7DANewCases) for training the model
    return lgbmcv: Trained model.
    """
    pipeline = Pipeline([
        ('scaler', MinMaxScaler()),
        ('mdl', LGBMRegressor())
    ])

    lgbmcv = GridSearchCV(pipeline,
                          cv=5,
                          scoring=mae_score,
                          param_grid=parameters,
                          verbose=2)
    lgbmcv.fit(X_train, y_train)
    return lgbmcv

Define the parameters to optimise during training. Three possible sets of parameters are given below. By default, the set which is uncommented will train a range of parameters. To reduce training time but give a reasonable performance, comment out the default parameters and uncomment the set at the top of the following cell. To search a wider range of parameters, comment out the default parameters and uncomment the set at the bottom of the cell below.

In [160]:
# The following parameters gives reasonable results and are quickest to train.
"""
parameters = {
    'mdl__n_estimators': [12000],
    'mdl__learning_rate': [0.06],
    'mdl__reg_lambda': [0.001],
    'mdl__reg_alpha': [0.1],
    'mdl__max_depth': [-1],
    'mdl__num_leaves': [8],
    'mdl__max_bin': [700],
    'mdl__boosting_type': ['dart'],
    'mdl__drop_rate': [0.1],
    'mdl__skip_drop': [0.5],
    'mdl__reg_sqrt': [True]
}
"""

# Default parameter set.
# Does some parameter searching without taking an excessively long time.
parameters = {
    'mdl__n_estimators': [12000],
    'mdl__learning_rate': [0.05, 0.06, 0.07],
    'mdl__reg_lambda': [0.001],
    'mdl__reg_alpha': [0.1],
    'mdl__max_depth': [-1],
    'mdl__num_leaves': [6, 8],
    'mdl__max_bin': [700],
    'mdl__boosting_type': ['dart'],
    'mdl__drop_rate': [0.1],
    'mdl__skip_drop': [0.5],
    'mdl__reg_sqrt': [True],
    'mdl__bagging_fraction': [0.8],
    'mdl__bagging_freq': [10]
}

# The following gives a wide range of training values but takes a long time.
"""
parameters = {
    'mdl__n_estimators': [10000, 12500, 15000],
    'mdl__learning_rate': [0.05, 0.06, 0.07],
    'mdl__reg_lambda': [0.001],
    'mdl__reg_alpha': [0.1],
    'mdl__max_depth': [-1, 6, 8, 10],
    'mdl__num_leaves': [6, 8, 10],
    'mdl__max_bin': [600, 800],
    'mdl__boosting_type': ['dart'],
    'mdl__drop_rate': [0.1],
    'mdl__skip_drop': [0.5],
    'mdl__reg_sqrt': [True]
}
"""
Out[160]:
"\nparameters = {\n    'mdl__n_estimators': [10000, 12500, 15000],\n    'mdl__learning_rate': [0.05, 0.06, 0.07],\n    'mdl__reg_lambda': [0.001],\n    'mdl__reg_alpha': [0.1],\n    'mdl__max_depth': [-1, 6, 8, 10],\n    'mdl__num_leaves': [6, 8, 10],\n    'mdl__max_bin': [600, 800],\n    'mdl__boosting_type': ['dart'],\n    'mdl__drop_rate': [0.1],\n    'mdl__skip_drop': [0.5],\n    'mdl__reg_sqrt': [True]\n}\n"

The following features are needed in combined_daily_df_train but must be excluded from training.

In [161]:
exclude_features = [
    'date',
    'country',
    'DayNumber',
    '7DANewCases',
    '7DADeltaNewCases']

Although lag and difference features are used, the way the dataframes are constructed means that every data row in the training and testing set is self-contained. All the lag and difference feaures needed to train the model or make a prediction are included in the row. This means that this is now a supervised learning problem. There are a number of input features to the model, and a known output value. This also means that the training data rows can be shuffled, because their order does not matter.

In [162]:
X_train = combined_daily_df_train[features].copy().drop(
    columns=exclude_features).values
y_train = combined_daily_df_train['7DANewCases'].values
X_train_shuf, y_train_shuf = shuffle(X_train, y_train)
lgbmcv = train_model(parameters, X_train_shuf, y_train_shuf)
Fitting 5 folds for each of 6 candidates, totalling 30 fits
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[Parallel(n_jobs=1)]: Done   1 out of   1 | elapsed:  1.7min remaining:    0.0s
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.9min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.0min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.9min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.3min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.05, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.3min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.8min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.8min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.9min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.6min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.9min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.9min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.4min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.4min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.8min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.06, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.3min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.7min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.2min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.3min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.0min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=6, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 1.8min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.6min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.4min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.3min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.1min
[CV] mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5 
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[CV]  mdl__bagging_fraction=0.8, mdl__bagging_freq=10, mdl__boosting_type=dart, mdl__drop_rate=0.1, mdl__learning_rate=0.07, mdl__max_bin=700, mdl__max_depth=-1, mdl__n_estimators=12000, mdl__num_leaves=8, mdl__reg_alpha=0.1, mdl__reg_lambda=0.001, mdl__reg_sqrt=True, mdl__skip_drop=0.5, total= 2.2min
[LightGBM] [Warning] bagging_fraction is set=0.8, subsample=1.0 will be ignored. Current value: bagging_fraction=0.8
[LightGBM] [Warning] bagging_freq is set=10, subsample_freq=0 will be ignored. Current value: bagging_freq=10
[Parallel(n_jobs=1)]: Done  30 out of  30 | elapsed: 64.2min finished
In [163]:
lgbmcv.best_params_
Out[163]:
{'mdl__bagging_fraction': 0.8,
 'mdl__bagging_freq': 10,
 'mdl__boosting_type': 'dart',
 'mdl__drop_rate': 0.1,
 'mdl__learning_rate': 0.06,
 'mdl__max_bin': 700,
 'mdl__max_depth': -1,
 'mdl__n_estimators': 12000,
 'mdl__num_leaves': 6,
 'mdl__reg_alpha': 0.1,
 'mdl__reg_lambda': 0.001,
 'mdl__reg_sqrt': True,
 'mdl__skip_drop': 0.5}

6.7. Baseline for Comparison - Persistsence Model

In order to evaluate the performance of the prediction model, it's necessary to measure the difference between predictions on the test set and the true values. This will be done with three different scoring methods: the root mean square error (RMSE), root mean square log error (RMSLE) and mean absolute error (MAE).

It's also necessary to create a "baseline" model, against which the performance of the regression model can be judged. The "persistence" model will be used for this purpose, which simply predicts that new cases for the next day are the same as new cases for the previous day. If the regression model beats this, then it is making useful predictions.

In [164]:
def rmse(ytrue, ypred):
    return np.sqrt(mean_squared_error(ytrue, ypred))
In [165]:
def rmsle(ytrue, ypred):
    # Any negative predictions treated as 0
    ypred[ypred < 0] = 0
    return np.sqrt(mean_squared_log_error(ytrue, ypred))
In [166]:
def persistence_model(y):
    """Predict using the persistence model and calculate errors.

    Calculates predictions and associated errors using the persistence model.
    Predictions are made from the second day provided in y
    onwards. For example, if y is provided from Day 0 then the first
    prediction will be made on Day 1. This is for two reasons. First, the
    shift() operation means the first "prediction" will always be a 0, i.e.
    invalid. Second, and more importantly, it is consistent with the
    calculation in regression_model().

    param: y - true values for one country
    return: rmse_error
    return: rmsle_error
    return: mae_error
    """
    # Ignore the Day 0 prediction - shift() means it is invalid
    preds = y['True7DANewCases'].shift(1)[1:].values
    trues = y['True7DANewCases'][1:].values
    rmse_error = rmse(trues, preds)
    rmsle_error = rmsle(trues, preds)
    mae_error = mean_absolute_error(trues, preds)
    print("RMSE for persistence model = {:.3f}".format(rmse_error))
    print("RMSLE for persistence model = {:.5f}".format(rmsle_error))
    print("MAE for persistence model = {:.3f}".format(mae_error))
    return(rmse_error, rmsle_error, mae_error)

6.8. Making Predictions with the Trained Regression Model

After training the model it can be used to make predictions. The prediction code is written so predictions can be made in one of two modes:

  • Short range prediction (1 day ahead). This predicts the new cases the next day from all data available up to that point. It always uses ground truth values as inputs to the prediction, rather than feeding back predicted values to be used as input. In other words, the model always has a full set of true data to use as inputs to the next-day prediction.
  • Long range prediction. This mode allows prediction any number of days ahead of known ground truth values. The output of the model is a prediction of 7DANewCases. However, input features like 7DANewCases-1, 7DADeltaNewCases-1, and so on are based on the output of the model. So as the model predicts further and further ahead, it has to use its own predictions as input values. This makes long range prediction much more difficult.
In [167]:
def regression_model(X, y):
    """Predict using the regression model and calculate errors.

    Calculates predictions and associated errors using the trained prediction
    model. Predictions are made from the second day provided in X and y
    onwards. For example, if X and y are provided from Day 0 then the first
    prediction will be made on Day 1. This is for two reasons. First, the
    update_long_range_model() step requires known values on the previous day
    to work. Second, and more importantly, it is consistent with the
    calculation in persistence_model().

    param X: Inputs to use to predict new cases. Must be from from Day 0 on.
    param y: Ground truth values for new cases. Must be from from Day 0 on.
    return preds: Predictions from the regression model, Day 1 onward
    return rmse_error: RMSE error
    return rmsle_error: RMSLE error
    return mae_error: MAE error
    """
    predlist = []
    num_days = (X['date'].max() - X['date'].min()).days
    # Predict from the second value
    for day in range(1, num_days+1):
        prediction_date = X['date'].min() + timedelta(day)
        X_pred = X[X['date'] ==
                   prediction_date].drop(columns=exclude_features).values
        y_pred = lgbmcv.predict(X_pred)
        # New cases can never be <0. Treat predictions <0 as 0.
        y_pred[y_pred < 0] = 0
        # Record predicted new cases
        predlist.append(y_pred)
        if LONG_RANGE_MODEL:
            update_long_range_model(X, y_pred, prediction_date)
    preds = np.array(predlist).reshape(len(predlist),)
    # Predictions are made from the second date provided in the inputs.
    trues = y['True7DANewCases'][1:].values
    # Calculate errors
    rmsle_error = rmsle(trues, preds)
    rmse_error = rmse(trues, preds)
    mae_error = mean_absolute_error(trues, preds)
    print("RMSE for regression model = {:.3f}".format(rmse_error))
    print("RMSLE for regression model = {:.5f}".format(rmsle_error))
    print("MAE for regression model = {:.3f}".format(mae_error))
    return(preds, rmse_error, rmsle_error, mae_error)

6.9. Testing - Predicting One Day Ahead

Now perform predictions on the countries reserved for testing and compare to the persistence model.

Note this simple model only makes a prediction one day ahead. At any time step, it is using true (i.e not predicted) data values from the previous days. This makes it straightforward to compare to the persistence model, which also predicts only one day ahead, and uses data from previous days.

Also note that this model only attempts to make predictions after "Day 1" of the virus (recall this is defined as the first day when 5 or more fatalities due to the virus were recorded).

Now test the model predictions to see how it performs on the test data, compared to the persistence model.

The following functions support the testing process.

In [168]:
def test_model(df_test, country, first_prediction_daynumber):
    """Test regression model and compare performance to persistence model.

    Predictions are made from first_prediction_daynumber onwards but the
    regression and persistence models both require data starting the day before
    first_prediction_daynumber. For example, if first_prediction_daynumber is
    1 then this function must provide data to persistence_model() and
    regression_model() starting from the day before (Day 0).

    param df_test: Dataframe containing test data.
    param country: Country to make test predictions on.
    param first_prediction_daynumber: First day to make a prediction.
    return regression_preds: Predictions from the regression model.
    return pers_rmse: RMSE for persistence model.
    return pers_rmsle: RMSLE for persistence model.
    return pers_mae: MAE for persistence model.
    return reg_rmse: RMSE for regression model.
    return reg_rmsle: RMSLE for regression model.
    return reg_mae: MAE for regression model.
    """
    df_X = df_test[(df_test['country'] == country)
                   & (df_test['DayNumber']
                      >= first_prediction_daynumber-1)][features]
    df_y = df_test[(df_test['country'] == country)
                   & (df_test['DayNumber']
                      >= first_prediction_daynumber-1)][['7DANewCases',
                                                         'True7DANewCases']]
    print(country)
    print("Persistence model")
    pers_rmse, pers_rmsle, pers_mae = persistence_model(df_y)
    print("Regression model")
    regression_preds, reg_rmse, reg_rmsle, reg_mae = regression_model(
        df_X, df_y)
    return (regression_preds,
            pers_rmse, pers_rmsle, pers_mae,
            reg_rmse, reg_rmsle, reg_mae)
In [169]:
def update_errors(pers_rmse, pers_rmsle, pers_mae,
                  reg_rmse, reg_rmsle, reg_mae):
    """Update error measures for persistence and regression models

    Maintains a list of all the error measures and keeps a track of the
    number of times the regression model beats the persistence model.

    param pers_rmse: RMSE for persistence model.
    param pers_rmsle: RMSLE for persistence model.
    param pers_mae: MAE for persistence model.
    param reg_rmse: RMSE for regression model.
    param reg_rmsle: RMSLE for regression model.
    param reg_mae: MAE for regression model.
    """
    global persistence_rmses
    global persistence_rmsles
    global persistence_maes
    global regression_rmses
    global regression_rmsles
    global regression_maes
    global count_rmse_reg_better
    global count_rmsle_reg_better
    global count_mae_reg_better
    global count_all_reg_better

    persistence_rmses.append(pers_rmse)
    persistence_rmsles.append(pers_rmsle)
    persistence_maes.append(pers_mae)
    regression_rmses.append(reg_rmse)
    regression_rmsles.append(reg_rmsle)
    regression_maes.append(reg_mae)

    print("")
    if regression_rmses[-1] < persistence_rmses[-1]:
        count_rmse_reg_better += 1
    if regression_rmsles[-1] < persistence_rmsles[-1]:
        count_rmsle_reg_better += 1
    if regression_maes[-1] < persistence_maes[-1]:
        count_mae_reg_better += 1
    if ((regression_rmsles[-1]
         < persistence_rmsles[-1]) and
        (regression_rmses[-1]
         < persistence_rmses[-1]) and
        (regression_maes[-1]
         < persistence_maes[-1])):
        count_all_reg_better += 1
In [170]:
def summarise_results(persistence_rmses, persistence_rmsles, persistence_maes,
                      regression_rmses, regression_rmsles, regression_maes,
                      count_rmse_reg_better, count_rmsle_reg_better,
                      count_mae_reg_better, count_all_reg_better):
    """Summarise performance of regression model compared to persistence

    param persistence_rmse: RMSE for persistence model.
    param persistence_rmsle: RMSLE for persistence model.
    param persistence_mae: MAE for persistence model.
    param regression_rmse: RMSE for regression model.
    param reression_rmsle: RMSLE for regression model.
    param regression_mae: MAE for regression model.
    param count_rmse_reg_better: Count when reg model beats pers by RMSE
    param count_rmsle_reg_better: Count when reg model beats pers by RMSLE
    param count_mae_reg_better: Count when reg model beats pers by MAE
    param count_all_reg_better: Count when reg model beats pers by all measures
    """
    print("Mean RMSE for persistence model = {}".format(
        np.mean(persistence_rmses)))
    print("Mean RMSE for regression model = {}".format(
        np.mean(regression_rmses)))
    print("Mean RMSLE for persistence model = {}".format(
        np.mean(persistence_rmsles)))
    print("Mean RMSLE for regression model = {}".format(
        np.mean(regression_rmsles)))
    print("Mean MAE for persistence model = {}".format(
        np.mean(persistence_maes)))
    print("Mean MAE for regression model = {}".format(
        np.mean(regression_maes)))
    print("The regression model beat the persistence model "
          " in {0} out of {1} tests by RMSE".format(
              count_rmse_reg_better, len(persistence_rmses)))
    print("The regression model beat the persistence model "
          "in {0} out of {1} tests by RMSLE".format(
              count_rmsle_reg_better, len(persistence_rmsles)))
    print("The regression model beat the persistence model "
          "in {0} out of {1} tests by MAE".format(
              count_mae_reg_better, len(persistence_maes)))
    print("The regression model beat the persistence model "
          "in {0} out of {1} tests by RMSE, RMSLE and MAE".format(
              count_all_reg_better, len(persistence_rmses)))

Now test one day ahead prediction. Recall that DayNumber up to and including 30 were used in training, so the first testing DayNumber is 31.

In [171]:
LONG_RANGE_MODEL = False
FIRST_PREDICTION_DAYNUMBER = 31

combined_daily_df_test['ShortRangePrediction'] = 0
persistence_rmses = []
persistence_rmsles = []
persistence_maes = []
regression_rmses = []
regression_rmsles = []
regression_maes = []
count_rmse_reg_better = 0
count_rmsle_reg_better = 0
count_mae_reg_better = 0
count_all_reg_better = 0

for country in test_countries:
    (country_preds, pers_rmse, pers_rmsle, pers_mae,
     reg_rmse, reg_rmsle, reg_mae) = test_model(combined_daily_df_test,
                                                country,
                                                FIRST_PREDICTION_DAYNUMBER)
    print(country)
    combined_daily_df_test.loc[(combined_daily_df_test[
        'country'] == country) & (combined_daily_df_test['DayNumber']
                                  >= FIRST_PREDICTION_DAYNUMBER),
                               'ShortRangePrediction'] = country_preds
    update_errors(pers_rmse, pers_rmsle, pers_mae,
                  reg_rmse, reg_rmsle, reg_mae)
San Marino
Persistence model
RMSE for persistence model = 1.903
RMSLE for persistence model = 0.18611
MAE for persistence model = 0.681
Regression model
RMSE for regression model = 1.935
RMSLE for regression model = 0.18398
MAE for regression model = 0.804
San Marino

Hungary
Persistence model
RMSE for persistence model = 63.753
RMSLE for persistence model = 0.09061
MAE for persistence model = 28.702
Regression model
RMSE for regression model = 51.708
RMSLE for regression model = 0.07393
MAE for regression model = 22.666
Hungary

Palestine
Persistence model
RMSE for persistence model = 28.298
RMSLE for persistence model = 0.04275
MAE for persistence model = 18.539
Regression model
RMSE for regression model = 16.939
RMSLE for regression model = 0.03254
MAE for regression model = 12.745
Palestine

Norway
Persistence model
RMSE for persistence model = 16.567
RMSLE for persistence model = 0.08921
MAE for persistence model = 6.570
Regression model
RMSE for regression model = 16.076
RMSLE for regression model = 0.08186
MAE for regression model = 5.750
Norway

Kosovo
Persistence model
RMSE for persistence model = 39.435
RMSLE for persistence model = 0.10822
MAE for persistence model = 17.604
Regression model
RMSE for regression model = 38.960
RMSLE for regression model = 0.10325
MAE for regression model = 17.391
Kosovo

Indonesia
Persistence model
RMSE for persistence model = 61.010
RMSLE for persistence model = 0.03396
MAE for persistence model = 43.300
Regression model
RMSE for regression model = 51.870
RMSLE for regression model = 0.03187
MAE for regression model = 38.226
Indonesia

Kenya
Persistence model
RMSE for persistence model = 29.499
RMSLE for persistence model = 0.06631
MAE for persistence model = 21.569
Regression model
RMSE for regression model = 27.302
RMSLE for regression model = 0.05692
MAE for regression model = 19.100
Kenya

Tajikistan
Persistence model
RMSE for persistence model = 2.129
RMSLE for persistence model = 0.04518
MAE for persistence model = 1.067
Regression model
RMSE for regression model = 2.445
RMSLE for regression model = 0.05572
MAE for regression model = 1.879
Tajikistan

Malawi
Persistence model
RMSE for persistence model = 3.657
RMSLE for persistence model = 0.14834
MAE for persistence model = 1.827
Regression model
RMSE for regression model = 3.376
RMSLE for regression model = 0.14328
MAE for regression model = 1.786
Malawi

Honduras
Persistence model
RMSE for persistence model = 48.595
RMSLE for persistence model = 0.11731
MAE for persistence model = 37.267
Regression model
RMSE for regression model = 43.222
RMSLE for regression model = 0.09841
MAE for regression model = 32.266
Honduras

Peru
Persistence model
RMSE for persistence model = 473.530
RMSLE for persistence model = 0.10750
MAE for persistence model = 298.353
Regression model
RMSE for regression model = 477.369
RMSLE for regression model = 0.10781
MAE for regression model = 307.177
Peru

Nigeria
Persistence model
RMSE for persistence model = 17.311
RMSLE for persistence model = 0.06267
MAE for persistence model = 12.602
Regression model
RMSE for regression model = 16.111
RMSLE for regression model = 0.05761
MAE for regression model = 12.111
Nigeria

India
Persistence model
RMSE for persistence model = 942.818
RMSLE for persistence model = 0.03185
MAE for persistence model = 731.236
Regression model
RMSE for regression model = 4839.280
RMSLE for regression model = 0.06999
MAE for regression model = 2908.307
India

Brazil
Persistence model
RMSE for persistence model = 1563.926
RMSLE for persistence model = 0.06468
MAE for persistence model = 1017.939
Regression model
RMSE for regression model = 3816.571
RMSLE for regression model = 0.11618
MAE for regression model = 2759.956
Brazil

Romania
Persistence model
RMSE for persistence model = 99.633
RMSLE for persistence model = 0.03813
MAE for persistence model = 48.785
Regression model
RMSE for regression model = 84.907
RMSLE for regression model = 0.03148
MAE for regression model = 39.822
Romania

Oman
Persistence model
RMSE for persistence model = 51.803
RMSLE for persistence model = 0.13129
MAE for persistence model = 33.524
Regression model
RMSE for regression model = 45.757
RMSLE for regression model = 0.13013
MAE for regression model = 32.745
Oman

Ukraine
Persistence model
RMSE for persistence model = 106.425
RMSLE for persistence model = 0.03064
MAE for persistence model = 66.529
Regression model
RMSE for regression model = 60.703
RMSLE for regression model = 0.02589
MAE for regression model = 37.084
Ukraine

Mali
Persistence model
RMSE for persistence model = 2.269
RMSLE for persistence model = 0.14277
MAE for persistence model = 1.603
Regression model
RMSE for regression model = 1.949
RMSLE for regression model = 0.12731
MAE for regression model = 1.478
Mali

Central African Republic
Persistence model
RMSE for persistence model = 2.290
RMSLE for persistence model = 0.29704
MAE for persistence model = 1.042
Regression model
RMSE for regression model = 2.207
RMSLE for regression model = 0.32575
MAE for regression model = 1.203
Central African Republic

Croatia
Persistence model
RMSE for persistence model = 39.199
RMSLE for persistence model = 0.11723
MAE for persistence model = 18.231
Regression model
RMSE for regression model = 29.521
RMSLE for regression model = 0.09431
MAE for regression model = 13.663
Croatia

Zambia
Persistence model
RMSE for persistence model = 19.203
RMSLE for persistence model = 0.13516
MAE for persistence model = 11.360
Regression model
RMSE for regression model = 12.827
RMSLE for regression model = 0.10952
MAE for regression model = 8.916
Zambia

Panama
Persistence model
RMSE for persistence model = 34.239
RMSLE for persistence model = 0.05842
MAE for persistence model = 24.215
Regression model
RMSE for regression model = 33.342
RMSLE for regression model = 0.05339
MAE for regression model = 23.388
Panama

South Africa
Persistence model
RMSE for persistence model = 205.018
RMSLE for persistence model = 0.04797
MAE for persistence model = 135.154
Regression model
RMSE for regression model = 172.523
RMSLE for regression model = 0.03820
MAE for regression model = 104.318
South Africa

El Salvador
Persistence model
RMSE for persistence model = 22.329
RMSLE for persistence model = 0.13415
MAE for persistence model = 14.694
Regression model
RMSE for regression model = 20.877
RMSLE for regression model = 0.12719
MAE for regression model = 13.623
El Salvador

Angola
Persistence model
RMSE for persistence model = 10.275
RMSLE for persistence model = 0.07601
MAE for persistence model = 7.696
Regression model
RMSE for regression model = 9.515
RMSLE for regression model = 0.06875
MAE for regression model = 7.230
Angola

Tanzania
Persistence model
RMSE for persistence model = 0.000
RMSLE for persistence model = 0.00000
MAE for persistence model = 0.000
Regression model
RMSE for regression model = 0.002
RMSLE for regression model = 0.00155
MAE for regression model = 0.001
Tanzania

Kazakhstan
Persistence model
RMSE for persistence model = 291.953
RMSLE for persistence model = 0.18310
MAE for persistence model = 78.885
Regression model
RMSE for regression model = 233.010
RMSLE for regression model = 0.16488
MAE for regression model = 66.820
Kazakhstan

Syria
Persistence model
RMSE for persistence model = 1.573
RMSLE for persistence model = 0.03024
MAE for persistence model = 1.237
Regression model
RMSE for regression model = 1.831
RMSLE for regression model = 0.03582
MAE for regression model = 1.478
Syria

Trinidad and Tobago
Persistence model
RMSE for persistence model = 4.889
RMSLE for persistence model = 0.12670
MAE for persistence model = 3.604
Regression model
RMSE for regression model = 4.304
RMSLE for regression model = 0.10912
MAE for regression model = 3.087
Trinidad and Tobago

Turkey
Persistence model
RMSE for persistence model = 76.457
RMSLE for persistence model = 0.03084
MAE for persistence model = 43.730
Regression model
RMSE for regression model = 50.454
RMSLE for regression model = 0.02319
MAE for regression model = 31.066
Turkey

Bahrain
Persistence model
RMSE for persistence model = 17.603
RMSLE for persistence model = 0.04262
MAE for persistence model = 12.971
Regression model
RMSE for regression model = 13.564
RMSLE for regression model = 0.03539
MAE for regression model = 10.413
Bahrain

Saudi Arabia
Persistence model
RMSE for persistence model = 75.624
RMSLE for persistence model = 0.03299
MAE for persistence model = 50.483
Regression model
RMSE for regression model = 53.554
RMSLE for regression model = 0.02291
MAE for regression model = 30.188
Saudi Arabia

In [172]:
summarise_results(persistence_rmses, persistence_rmsles, persistence_maes,
                  regression_rmses, regression_rmsles, regression_maes,
                  count_rmse_reg_better, count_rmsle_reg_better,
                  count_mae_reg_better, count_all_reg_better)
Mean RMSE for persistence model = 136.03788016469053
Mean RMSE for regression model = 319.8127466873836
Mean RMSLE for persistence model = 0.08906269554184007
Mean RMSLE for regression model = 0.08556616382541432
Mean MAE for persistence model = 87.21870006611553
Mean MAE for regression model = 205.20894733225103
The regression model beat the persistence model  in 25 out of 32 tests by RMSE
The regression model beat the persistence model in 25 out of 32 tests by RMSLE
The regression model beat the persistence model in 24 out of 32 tests by MAE
The regression model beat the persistence model in 24 out of 32 tests by RMSE, RMSLE and MAE

It's useful to visualise how the one day ahead predictions compare to the true values for test countries as a graph.

In [173]:
def graph_predictions(df_test, loc, feature):
    """Graph predicted and true new cases for a country.

    param df_test: Dataframe with test data.
    param loc: Location (country).
    param feature: Prediction model used.
    """
    global graphnum
    country_groups = df_test.groupby(['country'])
    country_grp = country_groups.get_group(loc)
    plt.figure(figsize=(18, 5))
    plt.plot(country_grp['date'], country_grp[feature],
             color='red', label='Predicted Mean New Cases')
    plt.plot(country_grp['date'], country_grp['True7DANewCases'],
             color='blue', label='True Mean New Cases')
    plt.xticks(rotation='vertical')
    plt.title("Graph {0} - Graph to Show Predicted and True New Cases "
              "(7 Day Rolling Average) from Training Data in {1}"
              .format(graphnum, loc))
    plt.legend()
    plt.show()
    graphnum += 1
In [174]:
for country in test_countries:
    graph_predictions(combined_daily_df_test[
        combined_daily_df_test['DayNumber'] > 30],
                      country,
                      'ShortRangePrediction')

The model is performing quite well. Keep in mind that the model is making predictions on just one day, given true input values for all the features. It is not predicting the whole series from a starting point.

6.10. Assessing Feature Importance

Next, plot the relative importance of the features in the trained model. This is useful to see infer how the model is working and (possibly) to understand which government measures have the largest influence on case numbers.

In [175]:
def plot_feature_importance(model, X, num_features=30):
    """Plot feature importance based on explained variance as a graph
    in descending order of importance.

    param model: Trained model.
    param X: Dataframe containing training features.
    param num_features: Max number of features to plot.
    """
    global graphnum
    feature_imp = pd.DataFrame({'Value': model.feature_importances_,
                                'Feature': X.columns})
    plt.figure(figsize=(40, 30))
    sns.barplot(x="Value", y="Feature",
                data=feature_imp.sort_values(by="Value",
                                             ascending=False)[0:num_features])
    plt.title("Graph {}: Graph to Show Feature Importance".format(graphnum))
    plt.show()
    graphnum += 1

Extract the best model found in training.

In [176]:
model = lgbmcv.best_estimator_.steps[1][1]
In [177]:
plot_feature_importance(
    model,
    combined_daily_df_test[features].drop(columns=exclude_features))

The most important features in this model are lag features related to the number of cases the day before.

Government measures also appear in the plot above but with very small importances.

According to this, the most important government measures are C5, C6 and C2, which are closing public transport, stay at home requirements and workplace closing, respectively.

However, the low importance suggests that these features are not making a significant difference to the predictions this model is making. Their importance is similar to the that of country_cat - in other words, the country for which the prediction is being made is almost as significant a factor in the model as the government measures themselves. This suggests that although the model does make reasonable predictions on any given day, it cannot tell us much about the relative importance of the government measures in controlling the virus.

In addition, I also ran some experiments with a slightly different model that included all the lag and difference features for 7DANewCases and 7DADeltaNewCases but none of the government measures. This performed just as well as the model that includes the government measures. This suggests that the model is not learning anything particularly useful from the features based on government measures, so it is not appropriate to draw any conclusions about them from this model.

6.11. Predicting Several Days Ahead

Up until now, the models have been used to predict just one day ahead. This is OK for training and model development but it is not particularly useful in practice. In this section, the trained model will be used to predict several days ahead.

In [178]:
def update_long_range_model(X, y_pred, prediction_date):
    """ Update model input features that change as predictions are made.

    param X: Dataframe of data used in the prediction process.
    param y_pred: A prediction that will also later be used as a model input.
    param pediction_date: Date the prediction applies to.
    """
    # Update 7DANewCases
    X.loc[X['date'] == prediction_date, '7DANewCases'] = y_pred

    # Update the 7DANewCases lag features
    for i in range(MIN_LAG_CASES, MAX_LAG_CASES):
        lagfeat = '7DANewCases-{}'.format(str(i))
        if (prediction_date + timedelta(i)) <= LAST_DATE:
            X.loc[X['date'] == (prediction_date + timedelta(i)),
                  lagfeat] = X[X['date']
                               == prediction_date]['7DANewCases'].values
    # Update 7DADeltaNewCases
    X.loc[X['date'] == prediction_date, '7DADeltaNewCases'] = (X.loc[
        X['date'] == prediction_date, '7DANewCases'].values
       - X.loc[X['date'] == (prediction_date - timedelta(1)),
               '7DANewCases'].values)
    # Update the 7DADeltaNewCases lag features
    for i in range(MIN_LAG_CASES, MAX_LAG_CASES):
        lagfeat = '7DADeltaNewCases-{}'.format(str(i))
        if (prediction_date + timedelta(i)) <= LAST_DATE:
            X.loc[X['date'] == (prediction_date + timedelta(i)),
                  lagfeat] = X[X['date']
                               == prediction_date]['7DADeltaNewCases'].values

Now perform the long range prediction, starting from DayNumber 31.

In [179]:
LONG_RANGE_MODEL = True
FIRST_PREDICTION_DAYNUMBER = 31

combined_daily_df_test['LongRangePrediction'] = 0
persistence_rmses = []
persistence_rmsles = []
persistence_maes = []
regression_rmses = []
regression_rmsles = []
regression_maes = []
count_rmse_reg_better = 0
count_rmsle_reg_better = 0
count_mae_reg_better = 0
count_all_reg_better = 0

# 7DANewCases, 7DADeltaNewCases and their lag features must be calculated
# from predicted values, so remove the known values from the input features.
# They are still stored in True7DANewCases so nothing is lost.
for i, f in enumerate(['7DANewCases']
                      + find_lag_features(['7DANewCases'],
                                          MAX_LAG_CASES,
                                          MIN_LAG_CASES)):
    combined_daily_df_test.loc[combined_daily_df_test['DayNumber']
                               >= i+FIRST_PREDICTION_DAYNUMBER, f] = 0

for i, f in enumerate(['7DADeltaNewCases']
                      + find_lag_features(['7DADeltaNewCases'],
                                          MAX_LAG_CASES,
                                          MIN_LAG_CASES)):
    combined_daily_df_test.loc[combined_daily_df_test['DayNumber']
                               >= i+FIRST_PREDICTION_DAYNUMBER, f] = 0

for country in test_countries:
    (country_preds, pers_rmse, pers_rmsle, pers_mae,
     reg_rmse, reg_rmsle, reg_mae) = test_model(combined_daily_df_test,
                                                country,
                                                FIRST_PREDICTION_DAYNUMBER)
    combined_daily_df_test.loc[(combined_daily_df_test[
        'country'] == country) & (combined_daily_df_test['DayNumber']
                                  >= FIRST_PREDICTION_DAYNUMBER),
                               'LongRangePrediction'] = country_preds
    update_errors(pers_rmse, pers_rmsle, pers_mae,
                  reg_rmse, reg_rmsle, reg_mae)
San Marino
Persistence model
RMSE for persistence model = 1.903
RMSLE for persistence model = 0.18611
MAE for persistence model = 0.681
Regression model
RMSE for regression model = 6.955
RMSLE for regression model = 1.26050
MAE for regression model = 5.394

Hungary
Persistence model
RMSE for persistence model = 63.753
RMSLE for persistence model = 0.09061
MAE for persistence model = 28.702
Regression model
RMSE for regression model = 1557.288
RMSLE for regression model = 3.40882
MAE for regression model = 770.505

Palestine
Persistence model
RMSE for persistence model = 28.298
RMSLE for persistence model = 0.04275
MAE for persistence model = 18.539
Regression model
RMSE for regression model = 476.680
RMSLE for regression model = 2.43741
MAE for regression model = 419.325

Norway
Persistence model
RMSE for persistence model = 16.567
RMSLE for persistence model = 0.08921
MAE for persistence model = 6.570
Regression model
RMSE for regression model = 190.049
RMSLE for regression model = 1.81116
MAE for regression model = 100.800

Kosovo
Persistence model
RMSE for persistence model = 39.435
RMSLE for persistence model = 0.10822
MAE for persistence model = 17.604
Regression model
RMSE for regression model = 279.733
RMSLE for regression model = 1.80185
MAE for regression model = 147.430

Indonesia
Persistence model
RMSE for persistence model = 61.010
RMSLE for persistence model = 0.03396
MAE for persistence model = 43.300
Regression model
RMSE for regression model = 2577.602
RMSLE for regression model = 4.38620
MAE for regression model = 2121.102

Kenya
Persistence model
RMSE for persistence model = 29.499
RMSLE for persistence model = 0.06631
MAE for persistence model = 21.569
Regression model
RMSE for regression model = 514.119
RMSLE for regression model = 3.04418
MAE for regression model = 414.895

Tajikistan
Persistence model
RMSE for persistence model = 2.129
RMSLE for persistence model = 0.04518
MAE for persistence model = 1.067
Regression model
RMSE for regression model = 24.302
RMSLE for regression model = 0.93310
MAE for regression model = 22.731

Malawi
Persistence model
RMSE for persistence model = 3.657
RMSLE for persistence model = 0.14834
MAE for persistence model = 1.827
Regression model
RMSE for regression model = 14.876
RMSLE for regression model = 0.91896
MAE for regression model = 13.141

Honduras
Persistence model
RMSE for persistence model = 48.595
RMSLE for persistence model = 0.11731
MAE for persistence model = 37.267
Regression model
RMSE for regression model = 541.914
RMSLE for regression model = 3.34797
MAE for regression model = 485.754

Peru
Persistence model
RMSE for persistence model = 473.530
RMSLE for persistence model = 0.10750
MAE for persistence model = 298.353
Regression model
RMSE for regression model = 4529.547
RMSLE for regression model = 4.24401
MAE for regression model = 4077.871

Nigeria
Persistence model
RMSE for persistence model = 17.311
RMSLE for persistence model = 0.06267
MAE for persistence model = 12.602
Regression model
RMSE for regression model = 296.074
RMSLE for regression model = 2.11851
MAE for regression model = 248.220

India
Persistence model
RMSE for persistence model = 942.818
RMSLE for persistence model = 0.03185
MAE for persistence model = 731.236
Regression model
RMSE for regression model = 51400.494
RMSLE for regression model = 6.39396
MAE for regression model = 42072.502

Brazil
Persistence model
RMSE for persistence model = 1563.926
RMSLE for persistence model = 0.06468
MAE for persistence model = 1017.939
Regression model
RMSE for regression model = 24701.901
RMSLE for regression model = 1.58278
MAE for regression model = 21816.847

Romania
Persistence model
RMSE for persistence model = 99.633
RMSLE for persistence model = 0.03813
MAE for persistence model = 48.785
Regression model
RMSE for regression model = 2895.861
RMSLE for regression model = 4.07957
MAE for regression model = 1751.765

Oman
Persistence model
RMSE for persistence model = 51.803
RMSLE for persistence model = 0.13129
MAE for persistence model = 33.524
Regression model
RMSE for regression model = 423.153
RMSLE for regression model = 1.98931
MAE for regression model = 345.378

Ukraine
Persistence model
RMSE for persistence model = 106.425
RMSLE for persistence model = 0.03064
MAE for persistence model = 66.529
Regression model
RMSE for regression model = 4266.888
RMSLE for regression model = 4.41241
MAE for regression model = 2831.191

Mali
Persistence model
RMSE for persistence model = 2.269
RMSLE for persistence model = 0.14277
MAE for persistence model = 1.603
Regression model
RMSE for regression model = 8.919
RMSLE for regression model = 0.51825
MAE for regression model = 5.781

Central African Republic
Persistence model
RMSE for persistence model = 2.290
RMSLE for persistence model = 0.29704
MAE for persistence model = 1.042
Regression model
RMSE for regression model = 10.580
RMSLE for regression model = 1.48299
MAE for regression model = 10.270

Croatia
Persistence model
RMSE for persistence model = 39.199
RMSLE for persistence model = 0.11723
MAE for persistence model = 18.231
Regression model
RMSE for regression model = 909.619
RMSLE for regression model = 3.37945
MAE for regression model = 471.655

Zambia
Persistence model
RMSE for persistence model = 19.203
RMSLE for persistence model = 0.13516
MAE for persistence model = 11.360
Regression model
RMSE for regression model = 45.818
RMSLE for regression model = 0.73634
MAE for regression model = 39.777

Panama
Persistence model
RMSE for persistence model = 34.239
RMSLE for persistence model = 0.05842
MAE for persistence model = 24.215
Regression model
RMSE for regression model = 728.481
RMSLE for regression model = 3.44951
MAE for regression model = 653.176

South Africa
Persistence model
RMSE for persistence model = 205.018
RMSLE for persistence model = 0.04797
MAE for persistence model = 135.154
Regression model
RMSE for regression model = 5119.683
RMSLE for regression model = 4.62857
MAE for regression model = 3712.889

El Salvador
Persistence model
RMSE for persistence model = 22.329
RMSLE for persistence model = 0.13415
MAE for persistence model = 14.694
Regression model
RMSE for regression model = 138.601
RMSLE for regression model = 1.62630
MAE for regression model = 123.347

Angola
Persistence model
RMSE for persistence model = 10.275
RMSLE for persistence model = 0.07601
MAE for persistence model = 7.696
Regression model
RMSE for regression model = 100.821
RMSLE for regression model = 0.65573
MAE for regression model = 86.331

Tanzania
Persistence model
RMSE for persistence model = 0.000
RMSLE for persistence model = 0.00000
MAE for persistence model = 0.000
Regression model
RMSE for regression model = 0.169
RMSLE for regression model = 0.15648
MAE for regression model = 0.169

Kazakhstan
Persistence model
RMSE for persistence model = 291.953
RMSLE for persistence model = 0.18310
MAE for persistence model = 78.885
Regression model
RMSE for regression model = 983.252
RMSLE for regression model = 2.74532
MAE for regression model = 570.837

Syria
Persistence model
RMSE for persistence model = 1.573
RMSLE for persistence model = 0.03024
MAE for persistence model = 1.237
Regression model
RMSE for regression model = 35.778
RMSLE for regression model = 1.06708
MAE for regression model = 30.473

Trinidad and Tobago
Persistence model
RMSE for persistence model = 4.889
RMSLE for persistence model = 0.12670
MAE for persistence model = 3.604
Regression model
RMSE for regression model = 12.697
RMSLE for regression model = 0.50052
MAE for regression model = 9.613

Turkey
Persistence model
RMSE for persistence model = 76.457
RMSLE for persistence model = 0.03084
MAE for persistence model = 43.730
Regression model
RMSE for regression model = 1867.355
RMSLE for regression model = 0.87627
MAE for regression model = 1780.071

Bahrain
Persistence model
RMSE for persistence model = 17.603
RMSLE for persistence model = 0.04262
MAE for persistence model = 12.971
Regression model
RMSE for regression model = 349.330
RMSLE for regression model = 2.24770
MAE for regression model = 295.474

Saudi Arabia
Persistence model
RMSE for persistence model = 75.624
RMSLE for persistence model = 0.03299
MAE for persistence model = 50.483
Regression model
RMSE for regression model = 1760.259
RMSLE for regression model = 2.94195
MAE for regression model = 1364.404

In [180]:
summarise_results(persistence_rmses, persistence_rmsles, persistence_maes,
                  regression_rmses, regression_rmsles, regression_maes,
                  count_rmse_reg_better, count_rmsle_reg_better,
                  count_mae_reg_better, count_all_reg_better)
Mean RMSE for persistence model = 136.03788016469053
Mean RMSE for regression model = 3336.525014418184
Mean RMSLE for persistence model = 0.08906269554184007
Mean RMSLE for regression model = 2.349473618567414
Mean MAE for persistence model = 87.21870006611553
Mean MAE for regression model = 2712.472420758313
The regression model beat the persistence model  in 0 out of 32 tests by RMSE
The regression model beat the persistence model in 0 out of 32 tests by RMSLE
The regression model beat the persistence model in 0 out of 32 tests by MAE
The regression model beat the persistence model in 0 out of 32 tests by RMSE, RMSLE and MAE

It's clear the model does not produce good predictions over a long period. The small errors in 7DANewCases soon make the model unstable.

Neverthless, it may work better over a shorter period. Plot graphs of the predicted and true values for a shorter time period (DayNumber 30 to 50) in the future:

In [181]:
for country in test_countries:
    graph_predictions(combined_daily_df_test[
        (combined_daily_df_test['DayNumber'] > 30)
        & (combined_daily_df_test['DayNumber'] < 50)],
                      country,
                      'LongRangePrediction')

The model is sometimes making reasonable predictions but in many cases the predictions soon diverge from the true values.

Now compare the prediction errors to the persistence model for a prediction 4 days into the future (DayNumber 31 to 34):

In [182]:
def calculate_errors(df_test, pred_feature):
    """ Calculate eror metrics for a predicted result in a data frame.

    Allows calculation of error metrics for any predicted feature in a data
    frame with an arbitrary date range.

    param df_test: Dataframe.
    param pred_feature: A predicted feature in df_test to calculate errors for.
    """
    preds = df_test[pred_feature].values
    trues = df_test['True7DANewCases'].values
    rmsle_error = rmsle(trues, preds)
    rmse_error = rmse(trues, preds)
    mae_error = mean_absolute_error(trues, preds)
    print("RMSE for {} model = {:.3f}".format(pred_feature, rmse_error))
    print("RMSLE for {} model = {:.5f}".format(pred_feature, rmsle_error))
    print("MAE for {} model = {:.3f}".format(pred_feature, mae_error))
    return(rmse_error, rmsle_error, mae_error)
In [183]:
persistence_rmses = []
persistence_rmsles = []
persistence_maes = []
regression_rmses = []
regression_rmsles = []
regression_maes = []
count_rmse_reg_better = 0
count_rmsle_reg_better = 0
count_mae_reg_better = 0
count_all_reg_better = 0

for country in test_countries:
    print(country)
    df_X = combined_daily_df_test[(combined_daily_df_test['country'] == country)
                   & (combined_daily_df_test['DayNumber'] > 30)
                   & (combined_daily_df_test['DayNumber'] < 35)]
    
    df_y = combined_daily_df_test[(combined_daily_df_test['country'] == country)
                   & (combined_daily_df_test['DayNumber'] >= 30)
                   & (combined_daily_df_test['DayNumber'] < 35)][['7DANewCases',
                                                  'True7DANewCases']]
    
    pers_rmse, pers_rmsle, pers_mae = persistence_model(df_y)
    reg_rmse, reg_rmsle, reg_mae = calculate_errors(df_X, 'LongRangePrediction')
    
    update_errors(pers_rmse, pers_rmsle, pers_mae, reg_rmse, reg_rmsle, reg_mae)
San Marino
RMSE for persistence model = 3.034
RMSLE for persistence model = 0.20817
MAE for persistence model = 1.929
RMSE for LongRangePrediction model = 2.172
RMSLE for LongRangePrediction model = 0.15552
MAE for LongRangePrediction model = 1.487

Hungary
RMSE for persistence model = 4.758
RMSLE for persistence model = 0.07414
MAE for persistence model = 4.107
RMSE for LongRangePrediction model = 10.347
RMSLE for LongRangePrediction model = 0.15978
MAE for LongRangePrediction model = 8.828

Palestine
RMSE for persistence model = 10.769
RMSLE for persistence model = 0.03712
MAE for persistence model = 8.357
RMSE for LongRangePrediction model = 19.708
RMSLE for LongRangePrediction model = 0.06807
MAE for LongRangePrediction model = 18.978

Norway
RMSE for persistence model = 7.255
RMSLE for persistence model = 0.11851
MAE for persistence model = 5.107
RMSE for LongRangePrediction model = 7.807
RMSLE for LongRangePrediction model = 0.12611
MAE for LongRangePrediction model = 6.062

Kosovo
RMSE for persistence model = 5.821
RMSLE for persistence model = 0.02536
MAE for persistence model = 5.179
RMSE for LongRangePrediction model = 1.907
RMSLE for LongRangePrediction model = 0.00822
MAE for LongRangePrediction model = 1.679

Indonesia
RMSE for persistence model = 17.160
RMSLE for persistence model = 0.05194
MAE for persistence model = 14.143
RMSE for LongRangePrediction model = 13.999
RMSLE for LongRangePrediction model = 0.04232
MAE for LongRangePrediction model = 11.644

Kenya
RMSE for persistence model = 8.963
RMSLE for persistence model = 0.06572
MAE for persistence model = 7.679
RMSE for LongRangePrediction model = 28.615
RMSLE for LongRangePrediction model = 0.23150
MAE for LongRangePrediction model = 24.298

Tajikistan
RMSE for persistence model = 2.367
RMSLE for persistence model = 0.02891
MAE for persistence model = 1.929
RMSE for LongRangePrediction model = 1.863
RMSLE for LongRangePrediction model = 0.02241
MAE for LongRangePrediction model = 1.743

Malawi
RMSE for persistence model = 10.767
RMSLE for persistence model = 0.13849
MAE for persistence model = 8.250
RMSE for LongRangePrediction model = 23.118
RMSLE for LongRangePrediction model = 0.31366
MAE for LongRangePrediction model = 22.826

Honduras
RMSE for persistence model = 18.339
RMSLE for persistence model = 0.17517
MAE for persistence model = 16.071
RMSE for LongRangePrediction model = 26.564
RMSLE for LongRangePrediction model = 0.23509
MAE for LongRangePrediction model = 22.159

Peru
RMSE for persistence model = 157.539
RMSLE for persistence model = 0.07817
MAE for persistence model = 149.036
RMSE for LongRangePrediction model = 222.921
RMSLE for LongRangePrediction model = 0.10837
MAE for LongRangePrediction model = 172.094

Nigeria
RMSE for persistence model = 7.653
RMSLE for persistence model = 0.02876
MAE for persistence model = 6.250
RMSE for LongRangePrediction model = 30.818
RMSLE for LongRangePrediction model = 0.10660
MAE for LongRangePrediction model = 28.028

India
RMSE for persistence model = 61.631
RMSLE for persistence model = 0.04070
MAE for persistence model = 58.500
RMSE for LongRangePrediction model = 41.465
RMSLE for LongRangePrediction model = 0.02655
MAE for LongRangePrediction model = 33.541

Brazil
RMSE for persistence model = 84.653
RMSLE for persistence model = 0.03500
MAE for persistence model = 80.929
RMSE for LongRangePrediction model = 248.254
RMSLE for LongRangePrediction model = 0.09270
MAE for LongRangePrediction model = 202.643

Romania
RMSE for persistence model = 13.797
RMSLE for persistence model = 0.04181
MAE for persistence model = 12.786
RMSE for LongRangePrediction model = 13.847
RMSLE for LongRangePrediction model = 0.04191
MAE for LongRangePrediction model = 11.167

Oman
RMSE for persistence model = 28.010
RMSLE for persistence model = 0.02509
MAE for persistence model = 20.464
RMSE for LongRangePrediction model = 41.330
RMSLE for LongRangePrediction model = 0.03691
MAE for LongRangePrediction model = 36.678

Ukraine
RMSE for persistence model = 3.887
RMSLE for persistence model = 0.00822
MAE for persistence model = 3.643
RMSE for LongRangePrediction model = 48.208
RMSLE for LongRangePrediction model = 0.10831
MAE for LongRangePrediction model = 44.646

Mali
RMSE for persistence model = 3.095
RMSLE for persistence model = 0.15842
MAE for persistence model = 2.786
RMSE for LongRangePrediction model = 3.672
RMSLE for LongRangePrediction model = 0.19800
MAE for LongRangePrediction model = 3.536

Central African Republic
RMSE for persistence model = 8.062
RMSLE for persistence model = 0.30342
MAE for persistence model = 6.786
RMSE for LongRangePrediction model = 7.456
RMSLE for LongRangePrediction model = 0.28337
MAE for LongRangePrediction model = 5.788

Croatia
RMSE for persistence model = 2.747
RMSLE for persistence model = 0.24987
MAE for persistence model = 2.107
RMSE for LongRangePrediction model = 4.641
RMSLE for LongRangePrediction model = 0.46216
MAE for LongRangePrediction model = 4.117

Zambia
RMSE for persistence model = 66.859
RMSLE for persistence model = 0.33059
MAE for persistence model = 53.893
RMSE for LongRangePrediction model = 42.450
RMSLE for LongRangePrediction model = 0.20713
MAE for LongRangePrediction model = 38.457

Panama
RMSE for persistence model = 24.001
RMSLE for persistence model = 0.11458
MAE for persistence model = 22.286
RMSE for LongRangePrediction model = 31.146
RMSLE for LongRangePrediction model = 0.14304
MAE for LongRangePrediction model = 26.146

South Africa
RMSE for persistence model = 32.763
RMSLE for persistence model = 0.07866
MAE for persistence model = 30.250
RMSE for LongRangePrediction model = 79.199
RMSLE for LongRangePrediction model = 0.18719
MAE for LongRangePrediction model = 74.034

El Salvador
RMSE for persistence model = 9.161
RMSLE for persistence model = 0.02771
MAE for persistence model = 8.857
RMSE for LongRangePrediction model = 20.671
RMSLE for LongRangePrediction model = 0.06315
MAE for LongRangePrediction model = 16.558

Angola
RMSE for persistence model = 5.264
RMSLE for persistence model = 0.09764
MAE for persistence model = 4.857
RMSE for LongRangePrediction model = 5.380
RMSLE for LongRangePrediction model = 0.09238
MAE for LongRangePrediction model = 5.230

Tanzania
RMSE for persistence model = 0.000
RMSLE for persistence model = 0.00000
MAE for persistence model = 0.000
RMSE for LongRangePrediction model = 0.144
RMSLE for LongRangePrediction model = 0.13280
MAE for LongRangePrediction model = 0.125

Kazakhstan
RMSE for persistence model = 25.858
RMSLE for persistence model = 0.08064
MAE for persistence model = 20.643
RMSE for LongRangePrediction model = 15.657
RMSLE for LongRangePrediction model = 0.04945
MAE for LongRangePrediction model = 14.107

Syria
RMSE for persistence model = 2.475
RMSLE for persistence model = 0.06045
MAE for persistence model = 1.893
RMSE for LongRangePrediction model = 2.415
RMSLE for LongRangePrediction model = 0.06054
MAE for LongRangePrediction model = 1.926

Trinidad and Tobago
RMSE for persistence model = 5.756
RMSLE for persistence model = 0.10741
MAE for persistence model = 4.643
RMSE for LongRangePrediction model = 4.889
RMSLE for LongRangePrediction model = 0.09099
MAE for LongRangePrediction model = 4.765

Turkey
RMSE for persistence model = 158.330
RMSLE for persistence model = 0.03818
MAE for persistence model = 143.321
RMSE for LongRangePrediction model = 282.463
RMSLE for LongRangePrediction model = 0.06926
MAE for LongRangePrediction model = 271.344

Bahrain
RMSE for persistence model = 15.486
RMSLE for persistence model = 0.02990
MAE for persistence model = 15.179
RMSE for LongRangePrediction model = 16.950
RMSLE for LongRangePrediction model = 0.03331
MAE for LongRangePrediction model = 15.440

Saudi Arabia
RMSE for persistence model = 38.584
RMSLE for persistence model = 0.02872
MAE for persistence model = 36.500
RMSE for LongRangePrediction model = 40.526
RMSLE for LongRangePrediction model = 0.02977
MAE for LongRangePrediction model = 32.753

In [184]:
summarise_results(persistence_rmses, persistence_rmsles, persistence_maes,
                  regression_rmses, regression_rmsles, regression_maes,
                  count_rmse_reg_better, count_rmsle_reg_better,
                  count_mae_reg_better, count_all_reg_better)
Mean RMSE for persistence model = 26.40135423287567
Mean RMSE for regression model = 41.89381488247485
Mean RMSLE for persistence model = 0.0902330737278752
Mean RMSLE for regression model = 0.12458075132621757
Mean MAE for persistence model = 23.69866071428572
Mean MAE for regression model = 36.33845247989459
The regression model beat the persistence model  in 10 out of 32 tests by RMSE
The regression model beat the persistence model in 10 out of 32 tests by RMSLE
The regression model beat the persistence model in 10 out of 32 tests by MAE
The regression model beat the persistence model in 8 out of 32 tests by RMSE, RMSLE and MAE

Even when the model is predicting just four days into the future, the persistence model is better than the regression model.

After trying a few values it's clear that the regression model only beats the prediction model more often than not when it predicts just two days into the future. The "short range" model that predicted just one day ahead seemed to work quite well, but even those predictions had small errors in them. In the long range model, the predictions become inputs to the model, and as shown in section 6.10 these are the most important features in the model. As a result, the small errors in the predictions are fed back into the model and these quickly lead to large errors after just a few days.

6.12. Conclusion and Evaluation on the Prediction Model

The short range model that predicts 7DANewCases on just one day, given all the ground truth input values, performs quite well compared to the persistence model. However, the most important features by far are the lag and difference features based on 7DANewCases. The government measures have a level of importance similar to the country in the model. Removing the government measures entirely does not significantly impact the accuracy of the model. This suggests that it is not worhtwhile attempting to infer anything about the relative importance of the government measures.

In addition, although the short range model performs well, the accuracy of the predictions fall quickly when it is used as the basis for a long range prediction. In this version, the model uses its own predictions of 7DANewCases as inputs, and attempts to make predictions several days into the future. But the small errors in the predictions of 7DANewCases quickly increase, and less than 5 days into the future the model is not making useful predictions.

Overall, this method used here has some very limited success as a prediction model, but it is not a useful way to explore the relative effectiveness of government responses to COVID-19.

In [185]:
print("Completed execution!")
Completed execution!

7. Conclusion

7.1. Overall Project Conclusions

This project combined several data sets about COVID-19 and the way governments around the world have responded to it to address some specific questions in section 1.3. about the most effective ways to minimise virus cases and fatalities.

The main conclusions are:

  1. Comparing the government responses to the spread of the virus over time shows that government lockdowns often precede a fall in cases but that the relationship between cases, fatalities and government measures is not a simple one. The level of excess fatalities in a country does have some relationship to both the time when lockdown took place and the time when testing started (the earlier these happen, the greater the chance of a lower level of excess fatalities) but it's clear these are not the only factors that are important. There is a complex set of interacting factors all of which influence the spread of the virus and the fatality rate.

  2. The K-means clustering model tentatively suggests that the following measures are more strongly associated with low excess deaths:

  • C4_Restrictions on gatherings
  • E1_Income support
  • time_to_lockdown (a low value means earlier lockdown)
  • first_week_of_testing (a low value means starting testing sooner)

compared to the measures:

  • C5_Close public transport
  • C5_Flag
  • C6_Stay at home requirements
  • H3_Contact tracing

The clustering model gives interesting results but it is limited by the lack of countries with excess deaths data.

  1. The regression model predicted reasonably well on any given day ("one day ahead") but the accuracy soon breaks down after more than two days. The government measures have such small importance in the model that it's not possible to draw any conclusions about them.

7.2. Suggestions for Further Work

There are many other aspects of the data that would be very interesting to study.

The relationship between fatality rates and factors such as the prevalence of smoking in a country, or obesity, age, poverty, number of hospital beds, and so on could be explored with visualisations and inferential statistics.

The clustering analysis could be performed with the number of reported fatalities, rather than excess fatalities, to give a larger data set.

In addition to the government measures, it would be interesting to explore population compliance levels inferred from sources such as Google's mobility data [15]

Although the regression model used here was not useful for learning about the importance of government measures there may be other models that are more useful for this. If such a model could be created then the importance of the features based on government measures could be examined and used to infer which are most important. A better way to examine feature importance would be to use Shapley Addative Importances [20].

7.3. Other Studies

While I was finishing this project, I read a published study that aims to find the relative effectiveness of government measures to mitigate COVID-19. It uses different methods then this project and it is an interesting read. [18]

References

  1. UK Government, Coronavirus (COVID-19). Accessed on 7th March, 2021.

Back to Section 1.4.

  1. Udacity, Data Science Nanodegree. Accessed on 17th June, 2020.

Back to Section 1.5

  1. Kaggle COVID-19 Forecasting . Accessed 17th June, 2020.

Back to Section 1.5

  1. Hale, Thomas, Sam Webster, Anna Petherick, Toby Phillips, and Beatriz Kira. Oxford COVID-19 Government Response Tracker (2020), Blavatnik School of Government. Data use policy: Creative Commons Attribution CC BY standard.

Back to Section 1.5.

Back to Section 4.2.

  1. Max Roser, Hannah Ritchie, Esteban Ortiz-Ospina and Joe Hasell, Coronavirus Pandemic (COVID-19) (2020). Published online at OurWorldInData.org. Retrieved from: https://ourworldindata.org/coronavirus [Online Resource] Data use policy: Creative Commons Attribution CC BY standard

Back to Section 1.5

  1. Seth Flaxman, Swapnil Mishra, Axel Gandy et al. Estimating the number of infections and the impact of nonpharmaceutical interventions on COVID-19 in 11 European countries (2020). Imperial College London (30-03-2020).

Back to Section 6.1.

  1. European Centre for Disease Prevention and Control. Download today’s data on the geographic distribution of COVID-19 cases worldwide. Online resource accessed at 21st June, 2020.

Back to Section 2.3.1.)

  1. Imperial College Healthcare NHS Trust. Coronavirus Testing Explained. Online resource accessed at 10th March 2021.

Back to section 3.1.2.1.

  1. COVID-19 Community Mobility Reports. https://www.google.com/covid19/mobility/, accessed 14th April, 2020.

Back to Section 4.5.

  1. Filho, Mario, How To Predict Multiple Time Series At Once With Scikit-Learn. Online resource accessed 14th February, 2021.

Back to Section 6.1.

  1. Flaxman, S., Mishra, S., Gandy, A. et al., Estimating the effects of non-pharmaceutical interventions on COVID-19 in Europe (2020), Nature 584, 257–261.

Back to Section 1.2

  1. Haug, N., Geyrhofer, L., Londei, A. et al. Ranking the effectiveness of worldwide COVID-19 government interventions, (2020), Nat Hum Behav 4, 1303–1312.

Back to Section 7.